我有一个大小为(90,000 * 9,000)
的vector<unsigned>
。我需要多次查找这个向量中是否存在一个元素?
为了实现这一点,我使用std::sort()
将向量按排序后的形式存储,然后使用std::binary_search()
在向量中查找元素。然而,在使用perf
进行分析时,我发现在vector<unsigned>
中查找元素是最慢的操作。
请问有人能够建议一些在C/C++
中使用的数据结构,以便高效地查找(90,000 * 9,000)
元素的向量中的元素。
我只进行一次插入(批量插入)。其余时间我只进行查找,因此主要开销是由于查找。