什么是基于std :: unordered_(set | map)范围的擦除的真实用例?

acc*_*c15 6 c++ stl c++11

发现std::unordered_set并且std::unordered_map有基于范围的erase(first, last),在我看来是另一种拍摄自己的好方法.

也许有人知道这种功能的任何真实用例?

或者这可能被视为糟糕的设计?

JDł*_*osz 1

好的,我有答案了。在 C++14 中,明确指出未擦除的元素保持相同的顺序 \xe2\x80\x9c,这使得在迭代容器时可以擦除单个元素。\xe2\x80\x9d

\n\n

因此,您的迭代将按某种随机顺序进行。但是,您可以删除一次通话中访问过的所有内容。要删除的范围将与您迭代的范围相同。

\n