我需要一个容器,可以在循环遍历时快速删除一个元素。我不需要直接访问它,因为我总是在循环内部访问它。
对于这种情况,
伪代码:
删除一个元素后,我需要继续循环其余的元素。
对于这种情况,
List
比Vector
更快吗?伪代码:
vector<Item*> myContainer;
for(..loop over it...) {
if (someCondition)
myContainer.erase(currentElement)
}
删除一个元素后,我需要继续循环其余的元素。
return p->someCondition;
行之前。具有可变谓词有点不寻常,但我不认为在这种特定情况下它不能工作。或者,首先使用for_each
更新项目,然后应用擦除/删除习语以删除不需要的项目。这样会更加清洁,但也可能会稍微影响缓存友好性。 - fredoverflow