C++ multimap - rend() Function
The C++ multimap::rend function returns the reverse iterator pointing to the element preceding the first element (reversed past-the-last element) of the multimap. A reverse iterator iterates in backward direction and increasing it results into moving to the beginning of the multimap container. Similarly, decreasing a reverse iterator results into moving to the end of the multimap container.
Note: Multimap is an ordered data container which implies all its elements are ordered all the time.
Syntax
reverse_iterator rend(); const_reverse_iterator rend() const;
reverse_iterator rend() noexcept; const_reverse_iterator rend() const noexcept;
Parameters
No parameter is required.
Return Value
A reverse iterator to the reversed past-the-last element of the sequence container. If the sequence object is constant qualified, the function returns a const_reverse_iterator, else returns an reverse_iterator.
Time Complexity
Constant i.e, Θ(1).
Example:
In the example below, the multimap::rend function returns the reverse iterator pointing to the element preceding the first element of the multimap MyMMap.
#include <iostream> #include <map> using namespace std; int main (){ multimap<string, string> MyMMap; multimap<string, string>::reverse_iterator rit; MyMMap.insert(pair<string, string>("USA", "New York")); MyMMap.insert(pair<string, string>("USA", "Washington")); MyMMap.insert(pair<string, string>("CAN", "Toronto")); MyMMap.insert(pair<string, string>("CAN", "Montreal")); MyMMap.insert(pair<string, string>("IND", "Delhi")); rit = MyMMap.rend(); rit--; cout<<rit->first<<" => "<<rit->second<<"\n"; rit--; cout<<rit->first<<" => "<<rit->second<<"\n"; rit--; cout<<rit->first<<" => "<<rit->second<<"\n"; return 0; }
The output of the above code will be:
CAN => Toronto CAN => Montreal IND => Delhi
Example:
Lets see another example of multimap where multimap::rend function is used with multimap::rbegin function to specify a range including all elements of the multimap container.
#include <iostream> #include <map> using namespace std; int main (){ multimap<string, string> MyMMap; multimap<string, string>::reverse_iterator rit; MyMMap.insert(pair<string, string>("USA", "New York")); MyMMap.insert(pair<string, string>("USA", "Washington")); MyMMap.insert(pair<string, string>("CAN", "Toronto")); MyMMap.insert(pair<string, string>("CAN", "Montreal")); MyMMap.insert(pair<string, string>("IND", "Delhi")); cout<<"MyMMap contains:"<<"\n "; for(rit = MyMMap.rbegin(); rit != MyMMap.rend(); ++rit) cout<<rit->first<<" => "<<rit->second<<"\n "; return 0; }
The output of the above code will be:
MyMMap contains: USA => Washington USA => New York IND => Delhi CAN => Montreal CAN => Toronto
❮ C++ <map> Library