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

【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()によるチェックを習慣づけると安全です。

  1. C++ STLのlist::cbegin()とcend()関数の使い方を解説

    本記事では、C++におけるlist::cbegin()およびlist::cend()関数の動作について解説します。list::cbegin()とlist::cend()は、C++標準テンプレートライブラリ(STL)の一部として提供されているメンバ関数です。これらの関数を呼び出すには、ヘッダーファイル<list>をインクルードする必要があります。list::cbegin()とはlist::cbegin()は、リストの先頭要素を指す定数イテレータ(const_iterator)を返す関数です。このイテレータを使えばリストを走査することはできますが、リスト内の値を変更することはできません

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

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