您的位置:首页 > 其它

文章标题

2016-12-28 22:10 197 查看

容器类

#include<list>
#include<deque>
#include<array>
#include<forward_list>
#include<string>


第一类:list和deque

deque<int>m;
list<int>n;//注意由于list是链表只能单个++不能跨越多个长度比如+=2不可以
//在首尾位置添加元素
n.push_back();
m.push_back();
n.push_front();
m.push_front();
//在中间添加数
m.insert(iter,1);//在iter指针之前添加1
m.insert(iter, 10, -1);//在iter指针之前添加十个-1,返回添加中的元素中第一个元素的指针
m.insert(iter, iter1, iter2);//在iter之前,添加[iter1,iter2)之间的数
//在首尾位置删除数
m.pop_back();//删除最后一个元素
m.pop_front();//删除第一个元素


第二类:string以及vector

string<char>m
vector<int>n
//无法在首元素位置添加或者删除元素
vector<int>n
auto i=n.begin()
int y
while (cin >> y)
{
i = n.insert(i, y);
}
//但可以通过insert反复在首尾添加元素
push_back
pop_back
//可以在最后添加或者删除元素
erase(iter)//删除iter元素
erase(iter1,iter2)//删除[iter1,iter2)之间的元素,返回一个指向最后一个被删元素之后的元素
//删除元素


第三类:forward_list

before_begin()//返回首元素之前的一个指针
insert_after(iter)//在iter之后(注意跟其他两类的insert做对比)添加元素,同样有一样的三种添加方式,返回添加元素的下一位置的指针
erase_after(iter)//删除iter之后的元素返回最后一个被删除元素后面一个元素的指针
forward_list没有--,没有back


总的来说

insert,erase对于第一类第二类通用
n.back()//返回尾元素的引用
m.front()//返回首元素的引用


对于添加删除更改元素,都会使指针,引用,迭代器失效,所以每次添加或删除元素后都要重新定义引用,迭代器,指针
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  容器类