C++ vector::rend() Function
The C++ vector::rend() function returns a reverse iterator pointing to the vector's element that is preceding the first element (reversed past-the-last element). When increased, a reverse iterator moves to the beginning of the vector container and iterates in the opposite manner.
Similar to increasing an iterator, reducing a reverse iterator causes the vector container to move to the end. The function returns a const_reverse_iterator if the vector object is const-qualified. If not, a reverse iterator is returned. The time complexity of the rend() function is constant.
Syntax
Following is the syntax for C++ vector::rend() Function −
reverse_iterator rend() noexcept; const_reverse_iterator rend() const noexcept;
Parameters
It doesn't accept any kind of parameter.
Example 1
Let's consider the following example, where we are going to use reserve() function.
#include <iostream>
#include<vector>
using namespace std;
int main(){
vector<int> tutorial{11,22,33,44};
vector<int>::reverse_iterator x;
for(x=tutorial.rbegin();x!=tutorial.rend();x++)
std::cout<< *x<<" ";
return 0;
}
Output
When we compile and run the above program, this will produce the following result −
44 33 22 11
Example 2
Considering the another scenario, where we are going to take string type and applying the rend() function.
#include <iostream>
#include<vector>
using namespace std;
int main() {
vector<string> course{"HTML","SQL","JS","OS"};
vector<string>::reverse_iterator x;
vector<string>::iterator a;
std::cout<<"before using rend():";
for(a=course.begin();a!=course.end();a++)
cout<<*a<<", ";
cout<<'\n';
cout<<"after using rend():";
for(x=course.rbegin();x!=course.rend();x++)
cout<<*x<<", ";
return 0;
}
Output
On running the above program, it will produce the following result −
before using rend():HTML, SQL, JS, OS, after using rend():OS, JS, SQL, HTML,
Example 3
In the following example, we are going to use the push_back() function to insert the elements and applying the rend() function.
#include <iostream>
#include<vector>
using namespace std;
int main(){
vector<string> car;
car.push_back("RS7");
car.push_back("Q6");
car.push_back("GLS340D");
car.push_back("CHERON");
cout << "\nResult:\n";
for (auto x = car.rbegin(); x != car.rend(); x++)
cout << *x << " ";
return 0;
}
Output
When we execute the above program, it will produce the following result −
Result: CHERON GLS340D Q6 RS7