STL 的组成部分是个重要的部分,先回忆一下
容器,迭代器,算法(函数),分配器(分配内存),适配器,仿函数
一 容器的分类.
vector , list,map
容器是保存数据,用于管理一大堆数据。
分为三大类
第一类:顺序容器,sqquence containers.放进去在哪里,这个元素就排在哪里,例如,array, vector,deque,list,forward_list
第二类:关联容器 associative containers ,一般都是键值对.特别适合做查找。
关联容器你只能控制插入的数据,不能控制插入的位置。
set, map, multiset,multimap,hash_set,hash_map
第三类: 无序容器 unordered containers C++11推出来的。
元素的位置不重要,重要的是这个元素是否在这个集合里面。
无序容器实际上也属于一种关联容器。
无序容器里面的元素可能随着 新的元素的增加让原来元素的位置发生变化,这是无序容器内部 的算法决定的。
unordered set/ multiset
unordered map/ multimap
二 容器的说明和应用事项例
array: 是一个顺序容器,其实是一个数组,大小是固定的,刚开始申请的大小是多少,就是多少,不能扩展。
#include <array>
std::array C++文档说明
< cpp | container
在标头 |
||
template< class T, |
(C++11 起) | |
std::array
是封装固定大小数组的容器。
此容器是一个聚合类型,其语义等同于保有一个 C 风格数组 T[N] 作为其唯一非静态数据成员的结构体。不同于 C 风格数组,它不会自动退化成 T* 。它能作为聚合类型聚合初始化,只要有至多 N
个能转换