我知道這可能看起來是一個重複的問題,但它不是,我有一個函數的問題,並不知道爲什麼它的行爲如此。刪除元素從矢量錯誤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 /刪除和刪除之間的差異) –