c++ STL之unordered_set

unordered_set的特点:

  1. 自身值就是主键,所以值唯一并且不可修改
  2. 基于hash表的无须排列

unordered_set基于哈希表,是无序的。

在一个 unordered_set 容器中,元素的值同时可以用来标志对应的元素(即值是自身的主键),每个值必须是唯一的。主键是不可修改的,因此在 unordered_set 中的元素不能被逐个修改(所有元素保持恒定),但是可以删除某个元素或插入新的元素。

在 unordered_set 内部,元素不会按任何顺序排序,而是通过元素值的 hash 值将元素分组放置到各个槽(Bucket,也可译成“桶”)中,这样就能通过元素值快速地访问各个对应的元素(平均耗时为一个常量,即时间复杂度为 O(1))。

在访问容器中的某个元素时,unordered_set 容器比 set 容器高效,而在迭代容器元素的某个子集时,前者比后者稍微低效了一点。

参考文章:http://classfoo.com/ccby/article/qNNOJ

猜你喜欢

转载自www.cnblogs.com/xiaoxue126/p/8984830.html