我有一个很大的std::vector<int>
,我必须得到一个迭代器,以便我可以调用它的其他函数,比如erase
。通过向量循环找到我正在搜索的元素需要花费很多时间。
std::map::find()
要快得多,但我不想为我永远不会使用的第二个值分配内存。
是否有任何带有find()
的单值容器或任何能给我一个速度与std::map::find
速度相近的迭代器的东西?我找不到任何。
答案 0 :(得分:4)
您正在寻找std::set
或std::multiset
。
答案 1 :(得分:0)
您可以使用std::unordered_map
或使用相同的std::vector
来保存您可以为已排序容器应用标准算法的元素顺序,例如std::equal_range
。