关于vector中的迭代器

vector<int>::iteratorfirst=ivec.begin(),last=ivec.end()-1;for(;first<last;++first,--l... vector<int>::iterator first = ivec.begin(),
last = ivec.end() - 1;
for (;
first < last;
++first, --last) {
cout << *first + *last << "\t";
这里输入偶数时,first和last最接近时,为什么两个值不会对调,输出一个重复的值;
输入奇数时,first==last时,为什么不会相加然后输出这个值。
不是输入奇数偶数,是vector容器中对象的个数是奇数偶数时
展开
 我来答
我都知道了哦
2013-02-12 · TA获得超过1764个赞
知道小有建树答主
回答量:1019
采纳率:0%
帮助的人:757万
展开全部
因为有判定条件:first<last
如果vector里面有奇数个元素,那么first和last到达最中间时,first==last,所以判定条件first<last不再成立所以停止执行;
如果vector里面有偶数个元素(比如说8个),那么中间的两个元素输出之后(first==3,last==4),之后的下一次循环,first<last这个判定条件已经不再成立了,所以不会输出一个重复的值。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式