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