c++ vector begin(),end(),rbegin(),rend()问题
我尝试了一下这些输出,如果end()不等于rbegin(),那么为什么下面的begin()又等于rend()呢?好迷惑。。。cout<<*(vecList2.end()-...
我尝试了一下这些输出,如果end()不等于rbegin(),那么为什么下面的begin()又等于rend()呢?好迷惑。。。
cout<<*(vecList2.end()-1)<<endl;
cout<<*vecList2.rbegin()<<endl;
cout<<*vecList2.begin()<<endl;
cout<<*(vecList2.rend())<<endl; //这里的rend()跟rend()-1都是一样正确的数据,那到底哪个正确呢? 展开
cout<<*(vecList2.end()-1)<<endl;
cout<<*vecList2.rbegin()<<endl;
cout<<*vecList2.begin()<<endl;
cout<<*(vecList2.rend())<<endl; //这里的rend()跟rend()-1都是一样正确的数据,那到底哪个正确呢? 展开
3个回答
展开全部
首先它们都是指针 end()指向最后一个元素的下一个,而rbegin()指向最后一个,所以不等;
begin()指向第一个元素,rend()指向第一个元素,所以相等。
begin()指向第一个元素,rend()指向第一个元素,所以相等。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
begin() 指向vector起始位置迭代器
end() 当前vector末尾元素的下一位置的迭代器
rbegin()指向末尾的下一位置,而其内容为末尾元素的值
rend()当前vector起始位置的逆迭代器
end() 当前vector末尾元素的下一位置的迭代器
rbegin()指向末尾的下一位置,而其内容为末尾元素的值
rend()当前vector起始位置的逆迭代器
追问
所以
begin就是第一个元素
rend跟位置跟值都和begin一样 //这样说对吗?
end就是最后一个元素的下一个位置
rbegin位置跟end一样,不同的就是它有末尾元素的值?
是这个意思吗?
追答
是这样的啊 , 你要验证的话 你最好输出迭代器的值
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询