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

【C++ STL】list::front()関数の使い方と実例を解説

この記事では、C++におけるlist::front()関数の動作、構文、具体的な使用例について詳しく解説します。

STLのlistとは?

listは、シーケンス内の任意の位置で定数時間での挿入と削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、非連続的なメモリ割り当てが可能です。そのため、配列、vector、dequeと比較して、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。

一方で、listは要素への直接アクセス(ランダムアクセス)が遅いという特徴があります。また、listはforward_listと似ていますが、forward_listは単方向連結リストであり、前方方向にしかイテレートできない点が異なります。

list::front()とは?

list::front()はC++ STLに組み込まれた関数で、<list>ヘッダーファイルで宣言されています。front()は、listコンテナの先頭位置にある要素への直接の参照を返します。

なお、空のlistに対してこの関数を使用すると未定義動作を引き起こすため、呼び出し前にコンテナが空でないことを確認することが重要です。

構文

list_container.front();

この関数は引数を受け取りません。

戻り値

この関数は、listコンテナの最初の要素への参照を返します。参照が返されるため、戻り値を通じて先頭要素の値を読み取るだけでなく、変更することも可能です。

使用例1:先頭要素を取得する

以下のコードでは、front()関数を使ってlistの最初の要素を取得し、結果を表示しています。

#include <bits/stdc++.h>
using namespace std;
int main(){
    //listを作成
    list<int> myList;
    //listに要素を挿入
    myList.push_back(3);
    myList.push_back(2);
    myList.push_back(21);
    myList.push_back(11);
    //listの最初の要素を取得
    int first_ele = myList.front();
    cout<<"listの最初の要素は : "<<first_ele;
    return 0;
}

出力

上記のコードを実行すると、以下の出力が得られます。

listの最初の要素は : 3

使用例2:先頭要素の値を変更する

以下のコードでは、最初の要素の値を最後の要素の値で置き換えています。この処理では最初と最後の値の両方にアクセスする必要があり、front()関数とback()関数を呼び出すことで実現しています。

#include <iostream>
#include <list>
int main (){
    std::list<int> myList;
    myList.push_back(77);
    myList.push_back(2);
    myList.push_back(21);
    myList.push_back(23);
    myList.front() = myList.back();
    std::cout << "最初の要素を最後の要素で置き換えた結果 : " << myList.front() << '\n';
    return 0;
}

出力

上記のコードを実行すると、以下の出力が得られます。

最初の要素を最後の要素で置き換えた結果 : 23

まとめ

list::front()は、listコンテナの先頭要素にO(1)でアクセスできる便利な関数です。戻り値が参照であるため、要素の取得だけでなく値の変更にも利用できます。ただし、空のlistに対して呼び出すと未定義動作となるため、使用前にはempty()関数などでコンテナの状態を確認することをおすすめします。

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

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

  2. C++ STLのstd::arrayで使えるget()関数の使い方を徹底解説

    この記事では、C++ STLのstd::arrayコンテナに用意されているget()関数について詳しく解説します。この関数は、配列コンテナ内のi番目の要素を取得するために使用される便利な非メンバ関数です。 構文 get<i> array_name get()関数は、2つの必須パラメータを受け取ります。 1つ目はインデックスパラメータで、配列のi番目の位置を指定します。ここにはテンプレート引数として整数の定数を渡します。 2つ目は配列名(array_name)で、実際に要素を取り出す対象となる配列そのものです。 この関数は、指定されたi番目の要素への参照を返します。 なお、get()