基础用法
可变数组vector
特点:
- 长度可变
常用方法:
-
头文件
#include <vector>
-
初始化
vector<数据元素类型> 数组名;
vector<数据元素类型> 数组名(数组长度);
vector<数据元素类型> 数组名(数组长度,元素初始值);
注:定义一个定长的某类型数组,并给数组中每个元素都赋初值
vector<数据元素类型> 数组名(被复制的数组名); -
常用操作
(1)添加元素
push_back(插入的元素);//尾部插入元素
insert(index,value); //在index位置插入元素
insert(index,length,value);//在index位置位置插入length个元素,元素的值均为value
(2)删除元素
pop_back();//从尾部删除元素
erase(start,end);//删除处于[start,end)区间的元素
clear(); //清空数组
(3)查询数组信息
a[i]//查询数组第i个元素
back();//查询数组最后一个元素
front();//查找数组的第一个元素
empty(); //判断数组是否为空
size(); //查询数组长度
(4)其他
resize(newlength);//重新分配数组长度
注:当新长度大于原先长度时,多于原先的部分填充随机值
resize(newlength,value);//重新分配数组长度
注:当新长度大于原先长度时,多于原先的部分填充value
map
特点:
- 键值对模式<key,value>,key,value都可以是任意数据类型,可以根据key找value
- 自动排序
常用方法:
- 头文件
#include <map>
- 初始化
map<key的类型,value的类型> 名字 - 常用操作
(1)添加元素
insert(pair<key的类型,value的类型>(key,value);
注:如果key已在map中则不会插入
mp[key]=value;
注:如果key未在map中,则会将<key,value>插入map中;如果key已在map中,则会更新value的值;
(2)删除元素
erase();
(3)查询map的信息
mp[key];//查询key值对应的value
size();
clear();
count(key);//判断某一key值是否在该map里出现过
empty();//判断是否为空 - 其他
集合set
** 特点:**
- 自动排序
- 去重
常用方法:
栈stack
** 特点:**
- 先进后出
常用方法:
- 头文件
#include <stack>
- 初始化
stack<数据类型> stk; - 常用操作
(1)压栈
push(元素);
(2)弹栈
pop();
(3)访问栈顶
top();
(4)其他
empty();
size();
队列queue
特点:
- 先进先出
常用方法: - 头文件
#include <queue>
- 入队
push(); - 出队
pop(); - 查询队首
front(); - 查询队尾
back(): - 其他
size():
empty():
嵌套用法
vector与vector嵌套
vector<vector<数据元素类型>> 数组名
vector<vector<数据元素类型>> 数组名(一维长度,vector<数据元素类型>(二维数组长度))
set与map嵌套
#include <iostream>
#include <map>
#include <set>
using namespace std;
map<int,set<int>> mps;
int main()
{
mps[5].insert(3);
mps[5].insert(5);
mps[5].insert(7);
for(set<int>::iterator it=mps[5].begin();it!=mps[5].end();it++){
cout<<*it<<" ";
}
return 0;
}