【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()関数などでコンテナの状態を確認することをおすすめします。
-
C++ STLのlist::reverse()関数の使い方と実例解説
本記事では、C++におけるlist::reverse()関数の動作、構文、具体的な使用例について詳しく解説します。STLにおけるlistとはlistは、シーケンス内の任意の位置で定数時間O(1)での要素の挿入・削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、メモリの非連続的な割り当てが可能です。配列、vector、dequeと比較すると、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。listはforward_listと似ていますが、forwar
-
C++ STLのstd::arrayで使えるget()関数の使い方を徹底解説
この記事では、C++ STLのstd::arrayコンテナに用意されているget()関数について詳しく解説します。この関数は、配列コンテナ内のi番目の要素を取得するために使用される便利な非メンバ関数です。 構文 get<i> array_name get()関数は、2つの必須パラメータを受け取ります。 1つ目はインデックスパラメータで、配列のi番目の位置を指定します。ここにはテンプレート引数として整数の定数を渡します。 2つ目は配列名(array_name)で、実際に要素を取り出す対象となる配列そのものです。 この関数は、指定されたi番目の要素への参照を返します。 なお、get()