具有优化查找的容器,如std :: map但非关联

时间:2014-10-08 09:55:31

标签: c++ c++11

我有一个很大的std::vector<int>,我必须得到一个迭代器,以便我可以调用它的其他函数,比如erase。通过向量循环找到我正在搜索的元素需要花费很多时间。

std::map::find()要快得多,但我不想为我永远不会使用的第二个值分配内存。

是否有任何带有find()的单值容器或任何能给我一个速度与std::map::find速度相近的迭代器的东西?我找不到任何。

2 个答案:

答案 0 :(得分:4)

您正在寻找std::setstd::multiset

答案 1 :(得分:0)

您可以使用std::unordered_map或使用相同的std::vector来保存您可以为已排序容器应用标准算法的元素顺序,例如std::equal_range