我现在花了太多的时间试图获得以下代码片段不段错误。有人能解释我为什么这样做吗?移动向量结构的向量
我知道问题出在某个未初始化的内存中。
#include <iostream>
#include <vector>
using namespace std;
struct node {
vector<int> parents;
};
int main() {
vector<node> nodedb;
{
node df;
nodedb.push_back(move(df));
}
{
node &existing_node = nodedb[0];
for (int i = 0; i < 100; ++i) {
node df;
nodedb.push_back(move(df));
existing_node.parents.push_back(0);
}
}
return 0;
}
如果您事先知道向量的总大小,您可以对其调用保留,只要不超过向量的容量,迭代器不会失效。 – 2014-10-10 01:30:03