Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

C++ Array::cbegin() Function



The C++ std::array::cbegin() function is used to return a constant iterator pointing to the first element of a array. Unlike beging(), it provides read on;y access to the array elements, ensuring that the data cannot be modified through the iterator.

Syntax

Following is the syntax for std::array::cbegin() function.

const_iterator cbegin() const noexcept;

Parameters

It does not accepts any parameter.

Return Value

This function returns a constant iterator pointing to the beginning of the array.

Exceptions

This function never throws exception.

Time complexity

Constant i.e. O(1)

Example 1

In the following example, we are going to consider the basic usage of the cbegin() function.

#include <iostream>
#include <array>
using namespace std;
int main(void) {
   array < int, 5 > arr = {1,2,3,4,5};
   auto it = arr.cbegin();
   while (it < arr.end()) {
      cout << * it << " ";
      ++it;
   }
   cout << endl;
   return 0;
}

Output

Output of the above code is as follows −

1 2 3 4 5

Example 2

Consider the following example, where we are going to modify the value and observing the output.

#include <iostream>
#include <array>
using namespace std;
int main(void) {
   array < int, 5 > arr = {1,2,3,4,5};
   auto it = arr.cbegin();
   * it = 100;
   return 0;
}

Output

Following is the output of the above code −

main.cpp: In function 'int main()':
main.cpp:8:8: error: assignment of read-only location '* it'
    8 |    *it = 100;
      |    ~~~~^~~~~

Example 3

Let's look at the following example, where we are going to use the cbegin() function on the character array.

#include <iostream>
#include <array>
using namespace std;
int main() {
   array < char, 4 > MyArray {'a','b','c','d'};
   array < char, 4 > ::const_iterator cit;
   for (cit = MyArray.cbegin(); cit != MyArray.cend(); ++cit)
      cout << * cit << " ";
   return 0;
}

Output

If we run the above code it will generate the following output −

a b c d
array.htm
Advertisements