STL与基本数据结构

容器:
顺序式容器和关联式容器
顺序式容器
vector,list,deque,queue,priority_queue,stack
vector:动态数组,从末尾能快速插入和删除,直接访问任何元素。
**list:**双链表,从任何地方快速插入与删除。
deque:双向队列,从前面与后面快速插入与删除,直接访问任何元素。
queue:队列,先进先出。
priority_queue:优先队列,最高优先级元素总是第一个出列。
stack:栈,后进后出。
关联式容器:
set:集合,快速查找,不允许重复值。
multiset:快速查找,允许重复值。
map:一对多映射,基于关键字快速查找,不允许重复值。
multimap:一对多映射,基于关键字快速查找,允许重复值。
vector的定义:

vector<int>a                      //默认初始化,a为空 
vector<int>b(a)                   //用a定义b 
vector<int>a(100)                 //a有100个值为0的元素 
vector<string>a(10,"null")        //10个值为null的元素 
vector<string>vec(10,"hello")     //10个值为hello的元素 
vector<string>b(a.begin(),a.end())//b是a的复制 
struct point{
	int x , y;
};
vector<point>a;                   //a用来存坐标 

vector的常用操作:

在尾部添加元素	a.push_back(100)
元素个数			int size = a.size()
判断是否为空		bool inEmpty = a.empty()
打印第一个元素	cout << a[0] << endl;
在第i个元素前面插入k		a.insert(a.begin()+i,k)
尾部插入值为8的元素		a.push_back(8)
尾部插入10个值为5的元素	a.insert(a.end(),10,5)
删除末尾元素				a.pop_back()
删除区间[i,j-1]的元素	a.erase(a.begin()+i,a.begin()+j)
删除第三个元素			a.erase(a.begin()+2)
数组大小变为n			a.resize(n)
清空					a.clear()
翻转					reverse(a.begin(),a.end())
排序					sort(a.begin(),a.end())
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值