1 容器
类别 | 类 | 特点 |
---|---|---|
STL序列式容器 | array、vector、deque、list 、forward_list. | 不会对存储的元素进行排序,元素排列的顺序取决于存储它们的顺序. |
STL关联式容器 | map、multimap、set、 multiset | 关联式容器在存储元素时还会为每个元素在配备一个键,整体以键值对的方式存储到容器中。可以通过键值直接找到对应的元素,而无需遍历整个容器。另外,关联式容器在存储元素,默认会根据各元素键值的大小做升序排序。 |
STL无序关联式容器 | unordered_map、unordered_set、unordered_multimap、unordered_multiset | 无序关联式容器不会对存储的元素做升序排序. |
类 | 大小是否固定 | 元素存储位置 |
---|---|---|
array | 是(无法动态的扩展或收缩) | 连续 |
vector | 否(可以动态的扩展或收缩) | 连续 |
deque | ||
list | 否(可以动态的扩展或收缩) | 离散 |
forward_list | 否(可以动态的扩展或收缩) | 离散 |
2 序列式容器
2.1 类模板 array
2.1.1 内存空间固定大小
array<int, 10> scores; //定义10个整型元素的数组
2.1.1.1 设置元素值
scores.at(1) = 100; //设置元素1的值为100
2.1.1.2 填充元素值
scores.fill(100); //将数组所有元素初始化为100
2.1.1.3 读取元素值
int a = scores.at(1); //获取元素1的值
2.1.1.4 读取元素数量
int size = scores.size(); //获取元素数量
2.2 类模板 deque
2.3 类模板 forward_list
2.4 类模板 list
2.5 类模板 vector
2.5.1 内存空间动态大小
vector scores;
scores.resize(10);
2.1.1.1 设置元素值
scores.at(1) = 100; //设置元素1的值为100
2.1.1.2 填充元素值
scores.fill(100); //将所有元素初始化为100
2.1.1.3 读取元素值
int a = scores.at(1); //获取元素1的值
2.1.1.4 读取元素数量
int size = scores.size(); //获取元素数量