一、分类
-
序列型容器
-
关联型容器
- 不定序容器
二、结构
- 序列型容器
- array 容器大小固定
- vector 容器大小可以扩充,只能从后端开始扩充
- queue 容器大小可以扩充,前端和后端都可以扩充
- List 容器是双向链表
- Forward List 容器是单向链表
- 关联型容器:通常情况下用红黑树来表示其结构,适用场景为需要多次查找的情况,通过key来寻找value值。
(1)set和map区别:set每一个节点只有一个区域,key值既是value值,map每一个节点有两个区域,为key和value,key值和value值不一定相等;set中每一个节点的key值也就是其对应的value值,map每一个节点的key值和value值不要求值相等
(2)none-和multi-区别:multi-前缀表示该关联容器的key值可以重复,没有该前缀时会要求key值不能重复。
三、示例代码
#include <array>
#include <iostream>
#include <ctime>
#include <cstdio>
using namespace std;
namespace ll {
void testArray()
{ /*void testArray{*/
cout << "》》》》》test_array》》》》" << endl;
array<int, 50000> c;
clock_t timeStart = clock();
for (int i = 0; i < 50000; i++) {
c[i] = rand();
}
cout << "c的大小:" << c.size() << endl;
cout << "c.begin:" << c.front() << endl; //注意front()和begin()的区别,一个是返回迭代器,不能赋给ostream流,一个返回容器最后一个元素的引用
cout << "c.end:" << c.back() << endl;
cout << "耗费的时间为:" << clock() - timeStart << "ms" << endl;
}
}
输出结果: