C++ STLのlist::cbegin()とcend()関数の使い方を解説
本記事では、C++におけるlist::cbegin()およびlist::cend()関数の動作について解説します。
list::cbegin()とlist::cend()は、C++標準テンプレートライブラリ(STL)の一部として提供されているメンバ関数です。これらの関数を呼び出すには、ヘッダーファイル<list>をインクルードする必要があります。
list::cbegin()とは
list::cbegin()は、リストの先頭要素を指す定数イテレータ(const_iterator)を返す関数です。このイテレータを使えばリストを走査することはできますが、リスト内の値を変更することはできません。つまり、cbegin()は読み取り専用の反復処理にのみ使用できます。
構文
List_Name.cbegin();
パラメータ
この関数は引数を受け取りません。
戻り値
リストの先頭要素を指す定数イテレータを返します。
list::cend()とは
list::cend()は、リストの末尾(最後の要素の次の位置)を指す定数イテレータを返す関数です。このイテレータもリストの走査に使用できますが、リスト内の値を変更することはできません。cend()も反復処理専用の関数です。
構文
List_Name.cend();
パラメータ
この関数は引数を受け取りません。
戻り値
リストの末尾を指す定数イテレータを返します。
使用例
入力: list<int> Lt = {4, 8, 9}
出力: 4説明:ここでは、要素4、8、9を持つリストを作成しています。次にcbegin()関数を呼び出すと、リストの最初の要素を指すイテレータが取得されます。
そのため、これを出力すると、リストの先頭要素である「4」が表示されます。
プログラムのアプローチ
- まずint型のリスト(例:「Lt」)を作成し、いくつかの値を代入します。
- 次に、リストの要素を出力するためのループを開始します。
- forループ内でauto型のオブジェクト「itr」を作成し、
cbegin()とcend()の戻り値を受け取れるようにします。「itr」はcbegin()を使ってリストの先頭要素で初期化します。 - ループの終了条件として、「itr」が
cend()で取得した末尾と等しくない間、繰り返しを行うよう指定します。 - *itr の値を出力します。
アルゴリズム
Start
Step 1-> 関数 main() 内で
list<int> Lt={} を初期化
auto itr = Lt.cbegin() から itr != Lt.cend() まで itr++ しながらループ
*itr を出力
End
Stopサンプルコード
#include<iostream>
#include<list>
using namespace std;
int main() {
list<int> Lt = { 4,1,7,9,6 };
// リストの要素を出力する
cout << "リストの要素 : " << "\n";
for (auto itr = Lt.cbegin(); itr != Lt.cend(); itr++)
cout << *itr << " ";
return 0;
}実行結果
上記のコードを実行すると、以下の出力が生成されます。
4 1 7 9 6
このように、cbegin()とcend()を組み合わせることで、リストの内容を読み取り専用で安全に走査することができます。要素の変更が不要な場面では、通常のbegin()/end()ではなく、これらの定数イテレータ版を使用することで、意図しないデータの書き換えを防ぐことができます。
-
C++ STLのlist::reverse()関数の使い方と実例解説
本記事では、C++におけるlist::reverse()関数の動作、構文、具体的な使用例について詳しく解説します。STLにおけるlistとはlistは、シーケンス内の任意の位置で定数時間O(1)での要素の挿入・削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、メモリの非連続的な割り当てが可能です。配列、vector、dequeと比較すると、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。listはforward_listと似ていますが、forwar
-
C++STLのlist back()関数の使い方を解説
C++のlist back()関数とは本記事では、C++におけるlist back()関数の動作について詳しく解説します。list::back()関数は、C++標準テンプレートライブラリ(STL)の一部であり、リストの最後(末尾)の要素を取得・表示するために使用されます。この関数を呼び出す前に、必ず<list>ヘッダーファイルをインクルードする必要がある点に注意してください。構文List_Name.back();パラメータこの関数は、いかなるパラメータも受け取りません。戻り値この関数は、リストの最後の要素の値を返します。なお、リストが空の場合の動作は未定義となるため、呼び出し前にリ