我現在花了太多的時間試圖獲得以下代碼片段不段錯誤。有人能解釋我爲什麼這樣做嗎?移動向量結構的向量
我知道問題出在某個未初始化的內存中。
#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