Cpp-standard-library-cpp-array-cbegin

提供:Dev Guides
移動先:案内検索

C ++配列ライブラリ-cbegin()関数

説明

C ++関数* std
array :: cbegin()*は、配列の先頭を指す定数反復子を返します。 このメソッドによって返されるイテレータは、コンテナの反復に使用できますが、配列の内容の変更には使用できません。

宣言

以下は、std
arrayヘッダーからのstd :: array :: cbegin()関数の宣言です。
const_iterator cbegin() const noexcept;

パラメーター

None

戻り値

配列の先頭を指す定数反復子を返します。

例外

このメンバー関数は例外をスローしません。

時間の複雑さ

定数、つまり O(1)

次の例は、std
array :: cbegin()関数の使用法を示しています。
#include <iostream>
#include <array>

using namespace std;

int main(void) {

   array<int, 5> arr = {1, 2, 3, 4, 5};
   auto it = arr.cbegin();

  /*iterate whole array*/
   while (it < arr.end()) {
      cout << *it << " ";
      ++it;
   }

   cout << endl;

   return 0;
}

上記のプログラムをコンパイルして実行すると、次の結果が生成されます-

1 2 3 4 5

このメソッドはconstイテレータを返すため、このイテレータを使用して配列の内容を変更することはできません。 配列要素を変更しようとすると、コンパイルエラーが報告されます。

#include <iostream>
#include <array>

using namespace std;

int main(void) {

   array<int, 5> arr = {1, 2, 3, 4, 5};
   auto it = arr.cbegin();  /*returns a constant iterator*/

  /*ERROR: attemp to modify value will report compilation error*/
   *it = 100;

   return 0;
}

上記のプログラムのコンパイルは、次のエラーメッセージで失敗します。

cbegin.cpp: In function ‘int main()’:
cbegin.cpp:12:8: error: assignment of read-only location ‘ *it’
   * it = 100;
        ^