【发布时间】:2019-12-03 19:00:50
【问题描述】:
vector<node>::iterator it;
for(it;it!=vector_of_node.end();it++){
if(it->get_name()=="MARIA"){
vector_of_node.erase(it);
}
我希望我的代码目标很明确。我想从向量(在这种情况下为vector_of_nodes)中消除多个对象(在称为节点的类中描述)。 当我运行我的代码时,我没有从编译器得到任何错误,但我在运行时失败了。我确定错误出在我共享的这部分代码上。你能帮帮我吗?
【问题讨论】:
-
从向量中擦除会使您正在使用的迭代器无效。您也许可以通过从末尾开始并从头开始来迭代使用索引。
标签: c++ class vector memory-management erase-remove-idiom