我知道这可能看起来是一个重复的问题,但它不是,我有一个函数的问题,并不知道为什么它的行为如此。删除元素从矢量错误C++
我有一个载体类型为MyMaterial **(std :: vector)的元素。在我的程序中,我会知道一个元素“currentElement”,并且我会删除它。
我试着这样做:
myMaterials.erase(currentElement);
但这里的问题是:而不是仅删除“currentElement”,它也删除后添加的所有元素。它为什么这样做,我该如何解决它?
我必须指出,我不知道矢量中“currentElement”的位置,我不希望搜索它,我希望有另一种方法。
currentElement是什么类型? 如果你有索引你可以使用myMaterials.begin()+索引 你需要使用迭代器来做那些类型的操作 – Lefsler
不是'vector :: erase(n)'删除第n个元素?所以如果你有一个MyMaterial类型的元素,你必须首先找出它在矢量中的位置;) – TheOneAndOnly
[擦除和删除之间的差异]的可能重复(http://stackoverflow.com/questions/ 799314 /删除和删除之间的差异) –