1.
vector
特点可变大小数组, 适合随机访问
deque
双端队列: 适合随机访问
list
双向链表: 任何位置insert,delete.
forward_list: 单向链表
array:普通数组
string: 随机访问. 尾部插入删除
连续存储: string, vector, array
链接:list, forward_list
2.迭代器
是个智能指针指向某个容器元素. 可以方便遍历容器,访问容器
反向迭代器:顺序相反
3.容器复制操作:相同容器类型之间
直接赋值初始化方式复制
迭代器范围复制
4.容器赋值.
直接赋值
assign方法:可以用于不同类型之间,配合迭代器. list.assgin(vector.begin(),vector.end())
5.交换
swap()方法和函数,除了string, 使得数据未变,但是属于不同容器, 迭代器指向的内容不变
6.容器大小
>, >=,<,<= 操作数是相同类型
7.添加元素
push_back(), push_front(), insert(p,t) insert(p,n,t) t可以是{1,2}之类的序列, 成功返回第一个添加的元素的迭代器
8.访问
.back(), .front() ,[n], at(n) (越界检查)
返回该元素的引用
9.删除.
pop_front, pop_back(),clear(),erase(p) 删除迭代器指向的元素
.erase(p1,p2) 删除迭代器这个范围
10.vector
在内存中连续存储. 创建时申请的内存多于实际大小以便拓展. 内存满了后需要重新申请内存并复制数据然后释放以前内存
size() 已使用量
capacity() 总容量
reserve(10) 添加预留容量
11.string
substr(pos,n)
append()
replace(pos,repsize,newstring)
find() 返回下标
lowercase()转为小写
compare 与strcmp类似
to_string(int)
stod(s) string->浮点数
stoi(s)
....
12. stack
自定义构成:
stack<int,vector<int>> int类型栈,由vector实现
操作:push(),pop(),top()
13.quque
自定义构成:
quque<int,vector<int>> int类型栈,由quque实现
操作:pop(),front(),back()
浙公网安备 33010602011771号