有人能解释一下为什么这个 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;
}