rbegin()函数与rend()函数。
在使用C++的STL时,经常会用到迭代器,那么不得不搞清楚里面的一些指针 begin(), end(), rbegin(), rend()之间的区别与联系,以及它们分别都指向哪个元素。首先要明白的一点是它们都是指针,其中begin()指向第一个元素,我们容易误认为end()是指向最后一个元素,其实不是的,end()是指向最后一个元素的下一个。这就是为什么我们在使用map或是unordered_map来查找某个值时都要和end()比较呢,因为如果等于end()了,则说明所有的元素都遍历过一遍了,也包括最后一个元素。rbegin()指向最后一个元素,rend()指向第一个元素,和begin()相等。
样例:
vector<int> a;
a.push_back(1);
a.push_back(2);
vector<int> b(a.rbegin(),a.rend());//倒序地存储a数组
for(int i=0;i<b.size();i++)
{
cout<< b[i]<<' ';
}
//输出2 1