【发布时间】:2013-09-01 12:39:44
【问题描述】:
就像问题说的那样,您可以使用存储桶迭代器 (local_iterator) 从 std::unordered_set 中删除一个元素吗?我可以看到两种可能的解决方案:
- 由于erase() 只接受全局
iterators,local_iterator是否有等效功能? - 是否可以为
local_iterator获得等效的全局iterator?
如果不可行,请详细说明为什么不可行。
【问题讨论】:
-
你不能在同一个函数调用中同时使用
it和++it。 -
已更新,但仍然导致相同的错误。
-
您应该阅读
std::remove_if。它实际上并没有删除元素。 -
谢谢,我不知道。我删除了整个示例,因为它不再有任何用处。
-
我对这个问题的解决方案是使用
unordered_set.find(*local_iterator)将local_iterator转换为iterator
标签: c++ c++11 unordered-set