C++ multimap - cend() Function
The C++ multimap::cend function returns the constant iterator (const_iterator) pointing to the past-the-last element of the multimap container. The past-the-last element of the multimap is the theoretical element that follows the last element. It does not point to any element, and hence could not be dereferenced.
Note: A const_iterator is an iterator that points to constant value. The difference between iterator and const_iterator is that the const_iterator cannot be used to modify the contents it points to, even if the multimap element is not itself constant.
Note: Multimap is an ordered data container which implies all its elements are ordered all the time.
Syntax
const_iterator cend() const noexcept;
Parameters
No parameter is required.
Return Value
A const_iterator to the past-the-last element of the sequence container.
Time Complexity
Constant i.e, Θ(1).
Example:
In the example below, the multimap::cend function returns the const_iterator pointing to the past-the-last element of the multimap MyMMap.
#include <iostream> #include <map> using namespace std; int main (){ multimap<string, string> MyMMap; multimap<string, string>::const_iterator cit; 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")); cit = MyMMap.cend(); cit--; cout<<cit->first<<" => "<<cit->second<<"\n"; cit--; cout<<cit->first<<" => "<<cit->second<<"\n"; cit--; cout<<cit->first<<" => "<<cit->second<<"\n"; return 0; }
The output of the above code will be:
USA => Washington USA => New York IND => Delhi
Example:
Lets see another example of multimap where multimap::cend function is used with multimap::cbegin 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>::const_iterator cit; 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(cit = MyMMap.cbegin(); cit != MyMMap.cend(); ++cit) cout<<cit->first<<" => "<<cit->second<<"\n "; return 0; }
The output of the above code will be:
MyMMap contains: CAN => Toronto CAN => Montreal IND => Delhi USA => New York USA => Washington
❮ C++ <map> Library