浅识c++中list的front,back,begin,end的区别

在学习list时候了解到一个东西叫做迭代器(interator),它在容器中的作用有点类似于指针是容器和操纵容器的算法之间的中介,迭代器可以指向容器中的某一个元素,通过迭代器可以读取其指向的元素,那么由此开始进入本文的中心,front是返回list中的第一个元素,back是返回list中的最后一个元素如下代码:

list<int>a;
	for(int i=0;i<20;i++)
	{
		a.insert(a.end(),i);
	}
cout<<"front=" <<a.front()<<endl;
cout<<"back="<<a.front()<<endl;

很明显跑出的结果为front=0,back=19;

然而begin和end分别指的是返回一个指向第一个元素的迭代器和指向最末尾的迭代器

值得注意的是这里的末尾并不是最后一个元素而是最后一个后面的一个所以想要打出最后一个元素需要进行--操作

因为返回的是迭代器而不是元素所以这时候用如下代码无法运行:
 

cout<<"begin=" <<a.begin()<<endl;
cout<<"end="<<a.end()<<endl;

所以我们应当定义两个迭代器来接受返回的数据然后再将其输出:
 

	list<int>::iterator i;
	list<int>::iterator j;
	i=a.begin();
	j=a.end();
	j--;
	cout<<"begin=" <<*i<<endl;
	cout<<"end="<<*j<<endl;

结果也很显然begin=0;end=19;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值