目录
一.序列式容器和关联式容器
一.set
set类的介绍:
Construct :set的初始化
insert:插入
编辑find:查找
erase:删除
set查找范围的函数:编辑
二.map
2.1map介绍
2.2pair类型介绍 在map的insert中用到
2.3 map的 Construed(构造)
2.4 map的 insert 插入(重要)
三.下面的我就不一一介绍了,可以自行查看文档
3.1map的 erase 删除
3.2大部分函数
一.序列式容器和关联式容器
STL中的部分容器如 :string、vector、list、deque、array、forward_list等,这些容器统称为序列式容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值之间一般没有紧密的关联关系,比如交换一下,他依旧是序列式容器。顺序容器中的元素是按他们在容器中的存储位置来顺序保存和访问的。
关联式容器也是用来存储数据的,与序列式容器不同的是,关联式容器逻辑结构通常是非线性结构,两个位置有紧密的关联关系,交换一下,他的存储结构就被破坏了。顺序容器中的元素是按关键字来保存和访问的。
关联式容器有map/set 系列(unordered_map/unordered_set系列)map和set底层是红黑树,红黑树是一颗平衡二叉搜索树。set是key搜索场景的结构,map是key/value搜索场景的结构。
一.set
包含头文件#include<set>就可以使用
set类的介绍:
一般情况下,我们都不需要传后两个模版参数。
set底层是用红黑树实现,增删查效率是O(logN),迭代器遍历是走的搜索树的 中序,所以是有序
的。
map,set 和 vector/list等容器的使用,STL容器接口设计,高度相似。
Construct :set的初始化
可以自行查阅:
set - C++ Reference
例子:
insert:插入
find:查找
erase:删除
set查找范围的函数:
例子:
二.map
包含头文件#include<map>就可以使用
2.1map介绍
map的声明如下,Key就是map底层关键字的类型,T是map底层value的类型,
set默认要求Key支持小于比较,如果不支持或者需要的话可以自行实现仿函数传给第二个模版参
数,map底层存储数据的内存是从空间配置器申请的。
一般情况下,我们都不需要传后两个模版参数map底层是用红黑树实现,增删查改效率是O(logN),迭代器遍历是走的中序,所以是按key有序顺序遍历的。
2.2pair类型介绍 在map的insert中用到
2.4 map的 insert 插入(重要)
可以自行查找网站:
pair - C++ Reference
1.map底层的红黑树节点中的数据,使用pair<Key, T>存储键值对数据。
2.也可以作为类型
构造pair的例子:
2.3 map的 Construed(构造)
一般直接构造就行
更多例子:
2.4 map的 insert 插入(重要)
例子:
三.下面的我就不一一介绍了,可以自行查看文档
map - C++ Reference
3.1map的 erase 删除
例子
3.2大部分函数
这里注意一下:
例子