关联容器(Associative Containers ):关联容器中的元素没有严格线性关系,所以其中的元素没有首元素和末元素的区别。

1. 有序关联容器

set, map, multiset, multimap

1.1. 严格弱序关系

  • 非自反:!(x<x)
  • 非对称:x < y ==> !(y< x)
  • 传递性: x < y && y < z ==> x < z
  • 不可比的传递性: x =y && y=z ==> x = z

1.2. 关联容器的特点

sort和关联容器必须使用定义了严格弱序关系的类型,否则会导致未定义行为(死循环)。
但有些类型(如复数)定义严格弱序会比较奇怪。
增、删、查的时间复杂度为O(nlogn)

2. 无序关联容器(c++11)

unordered_set, unordered_map, unordered_multiset, unordered_multi_map
默认使用hash实现。

results matching ""

    No results matching ""