C++ Array Library - cend() Function


Advertisements

Description

The C++ function std::array::cend() returns a constant iterator which points to the past-end element of array. An iterator returned by this method can be used to iterate array contents but cannot be used to modify array contents, even if array object itself is not constant.

Declaration

Following is the declaration for std::array::cend() function form std::array header.

const_iterator cend() const noexcept;

Parameters

None

Return Value

Returns a constant iterator pointing to the past-end element of the array. This is a place-holder location and doesn't store any actual data. So dereferencing this will cause undefined behavior.

Exceptions

This member function never throws exception.

Time complexity

Constant i.e. O(1)

Example

Let us try to modify the value to which const iterator is pointing.

#include <iostream>
#include <array>

using namespace std;

int main(void) {

   array<int, 5> arr = {10, 20, 30, 40, 50};
   auto it = arr.cend(); /* iterator pointing to past−the−end of array */

   /* ERROR: attempt to modification will cause compilation error */
   *it = 5;

   return 0;
}

Above program produces following error message.

cend.cpp: In function ‘int main()’:
cend.cpp:12:8: error: assignment of read-only location ‘* it’
   *it = 5;
      ^
array.htm
Advertisements