小编Iel*_*mar的帖子

标准容器中 std::find() 的计时

我正在尝试std::find()std::unordered_setstd::set、 和计时该函数std::vector。但结果对我来说很奇怪。

unordered_set在an 中查找元素比在 a 中查找元素需要更多时间vector

理论上,搜索的时间复杂度应该为O(1)forunordered_setO(n)for vector

那么,在 an 中查找元素应该unordered_set比更快吗vector?我做错什么了吗?

这是我的代码:

#include <iostream>
#include <vector>
#include <set>
#include <unordered_set>
#include <algorithm>
#include <random>
#include <numeric>
#include <chrono>

using namespace std;

int main(int argc, char** argv)
{
  int size = 10000;
  vector<int> items(size);
  iota(items.begin(), items.end(), 0);
  auto rng = default_random_engine {};
  shuffle(items.begin(), items.end(), rng);
  
  chrono::steady_clock::time_point begin, end;  
  unordered_set<int> …
Run Code Online (Sandbox Code Playgroud)

c++ big-o stl

1
推荐指数
1
解决办法
87
查看次数

标签 统计

big-o ×1

c++ ×1

stl ×1