C++基本容器的使用

C++中有queue、list、vector、deque、stack、priority等多个容器,其成员函数的使用比较繁琐,总结如下

其头文件分别为:#include<queue>  #include<list>   #include<vector>  #include<stack> #include<deque>等

这类容器的声明,是通过将类型放在类模板名称后面的尖括号中来指定类型:

queue<int> q;

vector<string> svec;

list<char> l;


上述定义中,类型分别为queue<int> ,vector<string>,list<char>,变量名分别为:q、svec、l。

还有复杂一些的容器的容器,vector< vector<string> > vec;注意两个尖括号之间要有空格隔开,否则系统会认作右移操作符,导致编译错误。

这些类定义了好几种构造函数用来定义和初始化对象。以vector为例:

vector<T> v1;

vector<T> v2(v1);//v2为v1的副本

vector<T> v3(n,i);//v3包含n个值为i的元素

vector<T> v4(n);//v4为包含n个元素,每个元素为0

对于queue来说,常用的成员函数如下:push pop size empty front back

逐一举例说明

1.push 队列中插入一个元素(由于队列先进先出,故在队尾插入)

queue < string > q;

q.push("hello");

q.push("world");

q.push("test");

cout<<q.front()<<endl;

输出为 hello

2.front 返回队列中的第一个元素,上述代码中的front即为输出最先最早进入队列的元素。

3.pop 将队列中最先最早位置的元素去除。

queue < string > q;

q.push("hello");

q.push("world");

q.push("test");

q.pop();

cout<<q.front()<<endl;

输出为world,最靠前位置的元素hello被去除

4.size 返回队列中元素的个数,如

queue < string > q;

q.push("hello");

cout<<q.size()<<endl;

q.push("world");

q.push("test");

cout<<q.size()<<endl;

q.pop();

cout<<q.size()<<endl;

输出为1 3 2

5.empty 判断队列是否为空,空则返回true,否则返回false

queue < string > q;

cout<<q.empty()<<endl;

q.push("hello");

cout<<q.empty()<<endl;

输出为1 0

6.back 返回队列中最后一个元素

queue < string > q;

q.push("hello");

q.push("world");

q.push("test");

cout<<q.back()<<endl;

输出为test

对于vector来说,其成员函数及常规操作如下:

vector的size,和queue类似,如果需要循环vector中的每个元素值,则需要用到size_type,

for(vector<int>::size_type i=0;i!=ivec.size();i++)

除了可以使用size_type,对象元素的下标做容器中元素遍历,还可以使用迭代器(iterator),具体操作如下:

vector<int>::iterator iter;%迭代器类型定义。使用begin,end来返回迭代器,iter=ivec.begin(),用begin返回的迭代器指向了ivec的第一个元素。

for(vector<int>::iterator iter=ivec.begin();iter!=ivec.end();++iter)

在迭代器的使用中,只有vector和deque容器支持迭代器的算数运算以及关系操作符,也就是支持iter±n,以及>、<、≥、≤。

其他容器不支持以上两种情况,它们只能提供前置和后置的自增、自减运算以及相等、不等运算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值