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;
^