std :: list按索引删除元素

Kaa*_*reZ 2 c++ indexing list std c++11

我有一个充满对象的std :: list。每当添加对象时,我都希望将该对象索引存储在列表中,因此以后可以将其从列表中删除。

我想用伪代码做什么

myList.pushBack(element);
int index = myList.getIndexOfLastElement();

myList.erase(index);
Run Code Online (Sandbox Code Playgroud)

由于性能原因,我无法按价值搜索。

澄清 一下我有元素a(索引0),b(索引1),c(索引2),d(索引3)

如果删除元素b,我仍然希望能够通过2访问c。

Jok*_*_vD 5

我建议使用std::list::iterator而不是整数索引。std::list::erase()不会使迭代器无效。

auto index = myList.insert(myList.end(), element);

myList.erase(index);
Run Code Online (Sandbox Code Playgroud)