1.vector
动态数组,方便的动态扩容,方便的变量初始化(int类型默认初始化为0,bool默认初始化为false),可以用来实现邻接表(结点数太多的图)。
头文件
#include<vector>
using namespace std;
定义
//typename 可以是基本数据类型,可以是其它标准stl容器,可以是自定义结构体
vector<typename> name;
vector<int> v1;
vector<vector<int> > v2; //两个维度都是动态的
vector<student> v3(10);//一维固定为10,二维动态
元素访问
//1.下标访问
v[i]
//2.迭代器访问
vector<typename>::iterator it;
auto it;//另一种迭代器简易定义方法
for(auto it = v.begin();it!=v.end();it++)
cout<<*it;
//迭代器it可以进行算术运算
常用函数
函数 | 说明 |
---|---|
push_back(x); | 将元素x添加到容器末尾 |
pop_back(); | 删除容器末尾元素 |
size(); | 获取容器大小 |
clear(); | 清空元素 |
insert(it,x); | 在it处插入一个元素x |
erase(it); | 删除it处的元素 |
erase(first,last); | 删除[first,last)区间内的元素 |
使用场景
- 元素个数不确定
- 用于实现邻接表存储图
2.set
内部自动有序且不含重复元素的集合。
头文件
#include<set>
using namespace std;
定义
set<typename> name;
元素访问
for(auto it = v.begin();it!=v.end();it++)
cout<<