C++ Standard Library C++ STL Library

C++ map - cend() Function



The C++ map::cend function returns the constant iterator (const_iterator) pointing to the past-the-last element of the map container. The past-the-last element of the map is the theoretical element that follows the last element. It does not point to any element, and hence could not be dereferenced.

C++ cbegin cend

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 map element is not itself constant.

Note: Map 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 map::cend function returns the const_iterator pointing to the past-the-last element of the map MyMap.

#include <iostream>
#include <map>
using namespace std;
 
int main (){
  map<int, string> MyMap;
  map<int, string>::const_iterator cit;

  MyMap[101] = "John";
  MyMap[102] = "Marry";
  MyMap[103] = "Kim";
  MyMap[104] = "Jo";
  MyMap[105] = "Ramesh";

  cit = MyMap.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:

105 Ramesh
104 Jo
103 Kim

Example:

Lets see another example of map where map::cend function is used with map::cbegin function to specify a range including all elements of the map container.

#include <iostream>
#include <map>
using namespace std;
 
int main (){
  map<string, int> MyMap;
  map<string, int>::const_iterator cit;

  MyMap["John"] = 2500;
  MyMap["Jack"] = 2600;
  MyMap["Ella"] = 2000;
  MyMap["Nora"] = 3000;
  MyMap["Adam"] = 3100;

  cout<<"MyMap contains: \n ";
  for(cit = MyMap.cbegin(); cit != MyMap.cend(); ++cit)
    cout<<cit->first<<"  "<<cit->second<<"\n ";

  return 0;
}

The output of the above code will be:

MyMap contains: 
 Adam  3100
 Ella  2000
 Jack  2600
 John  2500
 Nora  3000

❮ C++ <map> Library