C++
 Computer >> コンピューター >  >> プログラミング >> C++

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()ではなく、これらの定数イテレータ版を使用することで、意図しないデータの書き換えを防ぐことができます。

  1. C++ STLのlist::reverse()関数の使い方と実例解説

    本記事では、C++におけるlist::reverse()関数の動作、構文、具体的な使用例について詳しく解説します。STLにおけるlistとはlistは、シーケンス内の任意の位置で定数時間O(1)での要素の挿入・削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、メモリの非連続的な割り当てが可能です。配列、vector、dequeと比較すると、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。listはforward_listと似ていますが、forwar

  2. C++STLのlist back()関数の使い方を解説

    C++のlist back()関数とは本記事では、C++におけるlist back()関数の動作について詳しく解説します。list::back()関数は、C++標準テンプレートライブラリ(STL)の一部であり、リストの最後(末尾)の要素を取得・表示するために使用されます。この関数を呼び出す前に、必ず<list>ヘッダーファイルをインクルードする必要がある点に注意してください。構文List_Name.back();パラメータこの関数は、いかなるパラメータも受け取りません。戻り値この関数は、リストの最後の要素の値を返します。なお、リストが空の場合の動作は未定義となるため、呼び出し前にリ