您好,请问关于c++ vector begin(),end(),rbegin(),rend()问题

我尝试了一下这些输出,如果end()不等于rbegin(),那么为什么下面的begin()又等于rend()呢?好迷惑。。。
cout<<*(vecList2.end()-1)<<endl;
cout<<*vecList2.rbegin()<<endl;

cout<<*vecList2.begin()<<endl;
cout<<*(vecList2.rend())<<endl; //这里的rend()跟rend()-1都是一样正确的数据,那到底哪个正确呢?

芜湖不芜
浏览 285回答 2
2回答

蝴蝶刀刀

1、如红框勾选所示,构造一个int类型的空vector向量。2、程序运行结果如图,可以看到vector的size为0。3、如红框勾选所示,构造了6个元素值为20的vector向量。4、运行结果显示,成功的构造了6个元素为20的向量。5、以现有vector对象的范围作为构造函数的参数,同样也将对象复制给另一个vector对象。然后运行结果就完成了。

温温酱

begin() 指向vector起始位置迭代器end() 当前vector末尾元素的下一位置的迭代器rbegin()指向末尾的下一位置,而其内容为末尾元素的值rend()当前vector起始位置的逆迭代器
打开App,查看更多内容
随时随地看视频慕课网APP