【发布时间】:2017-11-01 02:44:05
【问题描述】:
假设我在多个对象之间共享vector 或int:
vector <int> list;
每个对象都可以添加更多元素:
list.push_back(someint);
我希望这些对象能够删除它们放入其中的元素,但由于其他对象动作,我无法知道位置。 此外,如果我保留元素地址,它将只对应于列表中会改变的位置,所以我不知道。 有可能吗?
【问题讨论】:
假设我在多个对象之间共享vector 或int:
vector <int> list;
每个对象都可以添加更多元素:
list.push_back(someint);
我希望这些对象能够删除它们放入其中的元素,但由于其他对象动作,我无法知道位置。 此外,如果我保留元素地址,它将只对应于列表中会改变的位置,所以我不知道。 有可能吗?
【问题讨论】:
所以你有一个std::vector 并且你添加了一个元素。然后你擦除并添加一个或多个其他元素,最后你需要擦除原始元素?
std::vector 不太适合。为什么不改用std::list?使用std::list,您可以insert 一个元素,并将获得一个指向新插入元素的迭代器。与 std::vector 不同,std::list 迭代器将保持有效,即使稍后添加或删除其他元素。
【讨论】: