我有一個大的std::vector<int>
我必須得到一個迭代器,以便我可以調用它的其他功能,如erase
。通過遍歷矢量來查找我正在搜索的元素需要很長時間。容器與優化發現像std :: map但非關聯
std::map::find()
要快得多,但我不想爲第二個值分配內存,我永遠不會使用它。
是否有任何單值容器find()
或任何給我一個迭代器與std::map::find
類似的速度?我找不到任何東西。
我有一個大的std::vector<int>
我必須得到一個迭代器,以便我可以調用它的其他功能,如erase
。通過遍歷矢量來查找我正在搜索的元素需要很長時間。容器與優化發現像std :: map但非關聯
std::map::find()
要快得多,但我不想爲第二個值分配內存,我永遠不會使用它。
是否有任何單值容器find()
或任何給我一個迭代器與std::map::find
類似的速度?我找不到任何東西。
您正在尋找std::set
或std::multiset
。
您可以使用std::unordered_map
或使用相同的std::vector
來保留您可以對分類容器應用標準算法的元素順序,例如std::equal_range
。