知识点1【STL的概述】(了解)
STL(Standard Template Library,标准模板库。
STL提供了核心的容器、算法、迭代器。(3大核心组件)
STL的六大组件:容器、算法、迭代器、仿函数、适配器、空间配置器。
六大组件:
容器:存放数据
算法:操作数据
迭代器:算法 借助迭代器 操作容器。 迭代器和容器 是一一对应的.
仿函数:为 算法 提供策略。
适配器:为算法提供更多的参数接口
空间配置器:为容器和算法分配空间的(知道就行)
补充描述:
1、算法:算法分为质变算法和非质变算法。
质变算法:是指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等 等
非质变算法:是指运算过程中不会更改区间内的元素内容,例如查找、计数、遍 历、寻找极值等等
2、迭代器的分类
知识点2【迭代器的了解】(了解)
迭代器 是属于容器。
1、迭代器的简单分析
2、迭代器操作
3、容器嵌套容器
void test03()
{
vector<int> v1;
v1.push_back(10);
v1.push_back(20);
v1.push_back(30);
v1.push_back(40);
vector<int> v2;
v2.push_back(100);
v2.push_back(200);
v2.push_back(300);
v2.push_back(400);
vector<int> v3;
v3.push_back(1000);
v3.push_back(2000);
v3.push_back(3000);
v3.push_back(4000);
vector<vector<int>> v;
v.push_back(v1);
v.push_back(v2);
v.push_back(v3);
vector<vector<int>>::iterator it;
for(it=v.begin(); it!=v.end(); it++)
{
//*it == vector<int>
vector<int>::iterator mit;
for(mit=(*it).begin(); mit != (*it).end(); mit++)
{
//*mit == int
cout<<*mit<<" ";
}
cout<<endl;
}
}
知识点3【STL容器的场景】(了解)
vector 的使用场景:比如软件历史操作记录的存储、数组
deque 的使用场景:比如排队购票系统、评分系统
list 的使用场景: 比如公交车乘客的存储,随时可能有乘客下车,支持频繁的不确实位置元素的移除 插入。
set 的使用场景:比如对手机游戏的个人得分记录的存储,存储要求从高 分到低分的顺序排列
map 的使用场景:比如按 ID 号存储十万个用户,想要 快速要通过 ID 查找对应的用