c++ 快速学习-STL使用
为什么使用STL
自定义数据越来越多
随着项目的功能越来越多,需要管理的变量也会越来越多。大家就会使用结构体,类等来管理变量和函数。这些自定义的数据,都是由不同的基本类型组合而成,一个项目里面管理的数据结构和类,也是非常的多的。
struct Man
{
int id;
int age;
};
struct Apple
{
int id;
float price;
};
虽然自定义的数据结构千千万万,但是对数据结构的操作大部分都是类似的。比如数据的插入,删除,访问,修改等,都是差不多的。
STL 的作用就像快递盒
STL就像蜂巢的快递箱子,各种不同类型的数据都可以装在里面。stl并不关系里面的盒子里放的什么数据,stl只负责数据的拿出,放入,修改。这种设计思想,抽离了数据与逻辑的关系,将类似的逻辑封装起来,就是STL的核心思想。
vector
为什么使用vector?
- 当你编程是否疑惑自己定义的数组是否容量足够大,因为你无法把握未来的需求,可能一开始需求是10个用户,后面需求是1000个,你要是忘记改了大小,程序就会出错了。这时候vector的动态扩容,解决了这个难题。
使用vector
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int> num_list;
//清除
num_list.clear();
//增加数组元素
num_list.push_back(1);
num_list.push_back(2);
//单个查询
cout << " [1] " << num_list[1];
//遍历
for (auto item : num_list)
{
cout << item << " " << endl;
}
return 0;
}
map
为什么使用map
- 利用key通信,减少数据搬迁
当我们管理的数据越来越多,我们会给这些数据都编一个号码,每个模块不需要传输数据,只需要通过号码就能找到对应的数据,避免数据大量传递。 - 具备快速定位功能
map就像快递驿站的快递编号,通过编号-key,找到对于的快递📦,这就是map的左右,能快速定位数据。
使用map
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string> pet_list;
// 插入
pet_list.insert(make_pair(1, "Cat"));
pet_list.insert(make_pair(2, "Dog"));
// 通过key,直接访问
cout << "1 号 " << pet_list[1];
//遍历
for (auto item : pet_list)
{
cout << "[ " << item.first << "," << item.second << "] ";
}
cout << endl;
return 0;
}