STL基础复习

stl容器:vector,deque,list,map/multimap,set

特殊容器:stack,queue,priority_queue

 

通用操作

 size()  返回当前容器元素数量

 empty() 判断容器是否为空

 max_size() 返回容器能容纳的最大元素数量

 与迭代器有关的操作

 begin() 返回一个迭代器,指向第一个元素

 end() 指向最后一个元素之后

 rbegin() 指向逆向遍历的第一个元素

 rend() 指向逆向遍历的最后一个元素之后

 元素操作

 insert(pos,e)

 erase(beg,end)

 clear() 移除所有元素

 

迭代器

双向,list set map

随机 vector deque string

 

vector模拟动态数组

包含头文件 <vector>

操作

效果

vector<T> c

产生空的vector

vector<T> c1(c2)

产生同类型的c1,并将复制c2的所有元素

vector<T> c(n)

利用类型T的默认构造函数和拷贝构造函数生成一个大小为nvector

vector<T> c(n,e)

产生一个大小为nvector,每个元素都是e

vector<T> c(beg,end)

产生一个vector,以区间[beg,end]为元素初值

~vector<T>()

销毁所有元素并释放内存。

 

 

操作

效果

c.size()

返回元素个数

c.empty()

判断容器是否为空

c.max_size()

返回元素最大可能数量(固定值)

c.capacity()

返回重新分配空间前可容纳的最大元素数量

c.reserve(n)

扩大容量为n

c1==c2

判断c1是否等于c2

c1!=c2

判断c1是否不等于c2

c1<c2

判断c1是否小于c2

c1>c2

判断c1是否大于c2

c1<=c2

判断c1是否大于等于c2

c1>=c2

判断c1是否小于等于c2

 

操作

 

效果

at(idx)

返回索引idx所标识的元素的引用,进行越界检查

 

operator [](idx)

返回索引idx所标识的元素的引用,不进行越界检查

 

front()

返回第一个元素的引用,不检查元素是否存在

 

back()

返回最后一个元素的引用,不检查元素是否存在

 

操作

效果

c.insert(pos,e)

pos位置插入元素e的副本,并返回新元素位置

c.insert(pos,n,e)

pos位置插入n个元素e的副本

c.insert(pos,beg,end)

pos位置插入区间[beg;end]内所有元素的副本

c.push_back(e)

在尾部添加一个元素e的副本

 

操作

效果

c.pop_back()

移除最后一个元素但不返回最后一个元素

c.erase(pos)

删除pos位置的元素,返回下一个元素的位置

c.erase(beg,end)

删除区间[beg;end]内所有元素,返回下一个元素的位置

c.clear()

移除所有元素,清空容器

c.resize(num)

将元素数量改为num(增加的元素用defalut构造函数产生,多余的元素被删除)

c.resize(num,e)

将元素数量改为num(增加的元素是e的副本)

 

 deque

 模拟动态数组

包含头文件<deque>

 

posted @ 2019-03-24 08:05  WanTong  阅读(134)  评论(0编辑  收藏  举报