vector<map> push_back()导致迭代器失效

记录个错误:

vector<map<x, y>> _data;

// wrong:
auto lv = _data.size();
auto it0 = _data[lv - 1].begin();
auto it1 = _data[lv - 1].begin();
_data.push_back(map<x, y>());

// ok:
auto lv = _data.size();
_data.push_back(map<x, y>());
auto it0 = _data[lv - 1].begin();
auto it1 = _data[lv - 1].begin();

vector:push_back()可能导致内存重新分配,跟着迭代器也就失效了
之前debug了好久。。。。。。

你可能感兴趣的:(c++,c++,stl,debug,bug)