有人可以解釋我爲什麼這個C++代碼它的行爲是這樣嗎? 而且..如何避免將來出現這個「矢量」問題。從向量的元素成員方法插入向量元素破壞*這
#include <iostream>
#include <vector>
using namespace std;
struct my_str {
int x;
my_str() {
x = 0;
}
void insert();
};
vector<my_str> p;
void my_str :: insert() {
p.push_back(my_str());
x = 123;
}
int main() {
p.push_back(my_str());
p[0].insert();
cerr << p[0].x;
return 0;
}
你是什麼意思「破壞'*這個'」?這段代碼的行爲如何影響你? – delnan
@delnan:我想這顯示「0」,而不是「123」(http://ideone.com/jyagJK)。 –