目录
一、顺序和关联容器共同支持的成员函数
二、vector
1.vector的构造
2.赋值操作
3.直接访问向量元素
4.vector向量的常用操作
二、list
1.链表的构造(模板参数T是链表的数据类型)
2.链表赋值
3.链表存取
4.链表插入和删除
5.链表的特殊操作
三、stack
主要操作
一、顺序和关联容器共同支持的成员函数
begin()指向第一个元素
end()指向最后一个元素
erase()删除容器中的一个或多个元素
rbegin()指向按反顺序的第一个元素
rend()指向按反顺序的末端位置
clear()删除容器中的所有元素
二、vector
向量容器,类似于动态数组,比数组灵活
1.vector的构造
11vector<T>c//产生一个空vector,其中没有任何元素
2vector<T>c1(c2)//产生同型c2向量的一个复本(c2所有元素被复制给c1)
3vector<T>c(n,elem)//产生大小为n的向量c,且每个元素都是elem
4vector<T>c(beg,end)//产生一个向量,并用区间[beg,end]作为元素的初值
2.赋值操作
1c1=c2//将向量c2的元素全部赋值给c1
2c.assign(n,e)//复制n个元素e,赋值给向量c
3c.assign(beg,end)//将区间[beg,end]内的元素赋值给c
4c1.swap(c2)//将c1与c2向量互换
3.直接访问向量元素
1c.at[n]//返回下标n所标识的元素,若下标越界,返回“out_of_range”
2c[n]//返回下标n所标识的元素,不进行范围检查
3c.front()//返回第一个元素
4c.back()//返回最后一个元素
4.vector向量的常用操作
1c.insert(pos,e)//在pos位置插入e的副本,并返回新元素的位置
2c.insert(pos,n,e)//在pos位置插入e的n个副本,不返回值
3c.insert(pos,beg,end)//在pos位置插入区间[beg,end]内的所有元素
4c.push_back(e)//在尾部插入元素e
5c.push_back()//删除最后一个元素
6c.erase(pos)//删除pos位置的元素
7c.erase(beg,end)//删除区间[beg,end]内的所有元素
8c.clear()//删除所有元素,清空容器
9c.size()//返回向量c中的元素个数
10c.resize(n)//将c重新设置为大小为n个元素的向量,如果n比原来的元素多,则多出的元素常被初始化为0
上述成员函数参数中涉及的位置pos都与vector的迭代器有关,要操作这些成员函数,必须定义对应向量的迭代器,并通过迭代器访问pos指向的向量元素
二、list
双向链表,可以从头到尾或从尾到头访问链表中的节点,节点可以是任意数据类型。链表中节点的访问常常通过迭代器进行。
1.链表的构造(模板参数T是链表的数据类型)
1list<T>c//建立一个空链表c
2list<T>c1(c2)//建立与c2同型的链表c1(c2的每个元素都被复制)
3list<T>c(n)//建立具有n个元素的链表c,元素值由默认构造函数产生
4list<T>c(n,e)//建立n个元素的链表c,每个元素的值都是e
5list<T>c(beg,end)//建立链表c,并用[beg,end]区间内的元素作初始化
6c.~list<e>()//销毁链表c,释放内存
2.链表赋值
1c1=c2//将c2链表的全部元素赋值给c1链表
2c1.assign(n,e)//将元素e拷贝n次到c1链表
3c.assign(beg,end)//将区间[beg,end]的元素赋值给c
4c1.swap(c2)//将链表c1和c2的全部元素互换
3.链表存取
1c.front()//返回第一个元素,不检查元素存在与否
2c.back()//返回最后一个元素,不检查元素存在与否
4.链表插入和删除
1c.insert(pos,e)//在pos位置插入元素e的副本,并返回新元素的位置
2c.insert(pos,n,e)//在pos位置插入元素e的n个副本,没有返回值
3c.insert(pos,beg,end)//在pos位置插入区间[bed,end]内的全部元素
4c.push_back(e)//在尾部追加一个元素e的副本
5c.pop_back(e)//删除最后一个元素
6c.push_front(e)//在表头插入元素e的一个副本
7c.pop_front()//删除第一个元素
8c.remove(val)//删除值为val的元素
9c.remove_if(op)//删除所有“造成op(e)结果为true”的元素
10c.erase(pos)//删除pos指向的元素,返回下一元素的位置
11c.erase(beg,end)//删除区间[beg,end]内的元素,返回下一元素位置
12c.resize(n)//将链表c的大小重新设置为n
13c.clear()//删除链表所有元素,将整个容器置空
5.链表的特殊操作
1c.unique()//删除相邻重复元素,只留一个
2c.unique(op)//若存在若干相邻且使op()操作为true的元素,删除重复,只留一个
3c1.splice(pos,c2)//将c2内的所有元素转换到c1内,pos之前
4c1.splice(pos,c2,c2pos)//将c2链表的c2pos所指元素移到c1内的pos指向的位置
5c1.splice(pos,c2,c2beg,c2end)//将c2内[c2beg,c2end]区间的所有元素转换到c1内pos之前
6c.sort()//以operator<为准则,对所有元素排序
7c.sort(op)//以op()为准则,对所有元素排序
8c1.merge(c2)//c2合并到c1,若合并前有序则合后仍有序
9c.reverse()//将所有元素反序
三、stack
堆栈是一种较简单的容器,是一种受限制的向量,只允许在一端存取变量
LIFO(Lastinfirstout)
主要操作
push()//将第一个元素加入stack内,加入的元素放在栈顶
top()//返回栈顶元素元素值
pop()//删除栈顶元素
关注我,带你遨游代码世界!
私信回复“资料”获取更多