【C++ STL】list::front()とlist::back()の使い方を徹底解説
本記事では、C++ STLにおけるlist::front()およびlist::back()関数の動作、構文、具体的な使用例について詳しく解説します。
STLにおけるlist(リスト)とは?
listは、シーケンス内の任意の位置に対して定数時間O(1)での挿入・削除を可能にするデータ構造です。内部的には双方向連結リスト(doubly linked list)として実装されており、非連続的なメモリ割り当てを行います。
配列やvector、dequeと比較して、listはコンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。その一方で、要素への直接アクセス(ランダムアクセス)は遅いという特徴があります。
listはforward_listと似ていますが、forward_listは単方向連結リストであるため、前方方向にしかイテレートできない点が異なります。
list::front()とは?
list::front()は、C++ STLの組み込み関数で、<list>ヘッダーファイル内で宣言されています。この関数は、リストコンテナの先頭要素を参照するために使用されます。
front()は先頭要素への直接参照(reference)を返すのに対し、list::begin()は先頭要素を指すイテレータを返すという違いがあります。用途に応じて使い分けましょう。
構文
mylist.front();
パラメータ
この関数は引数を受け取りません。
戻り値
関連付けられたリストコンテナの先頭要素への参照を返します。
使用例
#include <iostream>
#include <list>
using namespace std;
int main(){
list<int> myList = { 10, 20, 30, 40, 50 };
cout << "Front element in my list is : " << myList.front();
return 0;
}
上記のコードを実行すると、以下の出力が得られます。
Front element in my list is : 10
list::back()とは?
list::back()も、C++ STLの組み込み関数で、<list>ヘッダーファイル内で宣言されています。この関数は、リストコンテナの末尾要素を参照するために使用され、末尾要素への直接参照を返します。
注意: リストが空の場合、back()(およびfront())を呼び出すと未定義動作(undefined behavior)となるため、呼び出し前にempty()で空かどうかを確認することをおすすめします。
構文
mylist.back();
パラメータ
この関数は引数を受け取りません。
戻り値
リストコンテナの末尾要素への参照を返します。
使用例
#include <iostream>
#include <list>
using namespace std;
int main(){
list<int> myList = { 10, 20, 30, 40, 50 };
cout << "Last element in list is : " << myList.back();
return 0;
}
上記のコードを実行すると、以下の出力が得られます。
Last element in list is : 50
まとめ
list::front()はリストの先頭要素、list::back()は末尾要素への参照を取得するための関数です。どちらも引数なしで呼び出せ、戻り値は参照型のため、取得した要素の値を読み取るだけでなく変更することも可能です。ただし、空のリストに対して呼び出すと未定義動作となるため、事前にempty()によるチェックを習慣づけると安全です。
-
C++ STLのlist::cbegin()とcend()関数の使い方を解説
本記事では、C++におけるlist::cbegin()およびlist::cend()関数の動作について解説します。list::cbegin()とlist::cend()は、C++標準テンプレートライブラリ(STL)の一部として提供されているメンバ関数です。これらの関数を呼び出すには、ヘッダーファイル<list>をインクルードする必要があります。list::cbegin()とはlist::cbegin()は、リストの先頭要素を指す定数イテレータ(const_iterator)を返す関数です。このイテレータを使えばリストを走査することはできますが、リスト内の値を変更することはできません
-
C++STLのlist back()関数の使い方を解説
C++のlist back()関数とは本記事では、C++におけるlist back()関数の動作について詳しく解説します。list::back()関数は、C++標準テンプレートライブラリ(STL)の一部であり、リストの最後(末尾)の要素を取得・表示するために使用されます。この関数を呼び出す前に、必ず<list>ヘッダーファイルをインクルードする必要がある点に注意してください。構文List_Name.back();パラメータこの関数は、いかなるパラメータも受け取りません。戻り値この関数は、リストの最後の要素の値を返します。なお、リストが空の場合の動作は未定義となるため、呼び出し前にリ