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>

上一篇:uva-529-枚举


下一篇:Javascript函数、构造函数、原型、类和对象