std::按索引列出remove元素

std::list remove element by index

本文关键字:remove 元素 索引 std      更新时间:2023-10-16

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

我想在伪代码中做什么

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

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

澄清:我有元素a(索引0)、b(索引1)、c(索引2)、d(索引3)

如果我删除了元素b,我仍然希望能够在2之前访问c。

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

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