C++——map和set类用法指南

一、前言

1.1 关联式容器

关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是结构的键值对,在数据检索时比序列式容器效率更高

1.2 键值对

用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代表键值,value表示与key对应的信息。

二、set

2.1 介绍

C++——map和set类用法指南_第1张图片

1、set是按照一定次序存储元素的容器

2、在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。set中的元素不能再容器中修改(元素总是const),但是可以从容器中插入或删除它们

3、在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行排序

4、set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对子集进行直接迭代

5、set在底层是用二叉搜索树实现的

【注意】

  1. 与map/multimap不同,map/multimap中存储的是真正的键值对,set中只放value,但在底层实际存放的是有构成的键值对。
  2. set中插入元素时,只需要插入value即可,不需要构建键值对。
  3. set中的元素不可以重复(因此可以使用set进行去重)。
  4. 使用set的迭代器遍历set中的元素,可以得到有序序列。
  5. set中的元素默认按照小于来比较。
  6. set中查找某个元素,时间复杂度为O(logN)。
  7. set中的元素不允许修改。
  8. set中的底层使用二叉搜索树来实现。

2.2 使用

C++——map和set类用法指南_第2张图片

你可能感兴趣的:(C++,c++)