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

C++ STLのlist::pop_back()関数の使い方を徹底解説

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

STLにおけるlistとは?

list(リスト)は、シーケンス内の任意の位置に対して定数時間での挿入と削除を可能にするデータ構造です。listは双方向連結リストとして実装されており、非連続的なメモリ割り当てが可能です。そのため、配列、vector、dequeと比較して、コンテナ内の任意の位置への要素の挿入・抽出・移動において優れたパフォーマンスを発揮します。一方で、要素への直接アクセス(ランダムアクセス)は低速であるという特徴があります。listはforward_listと似ていますが、forward_listは単方向連結リストであり、前方方向にしかイテレートできない点が異なります。

list::pop_back()とは?

list::pop_back()はC++標準テンプレートライブラリ(STL)に組み込まれている関数で、<list>ヘッダーファイル内で宣言されています。pop_back()は、listコンテナの末尾(最後)から要素を削除するために使用されます。pop_back()を呼び出すと最後の要素が削除され、その前の要素が新しい末尾の要素となります。同時に、listコンテナのサイズは1つ減少します。

構文

list_container.pop_back();

この関数は引数(パラメータ)を受け取りません。

戻り値

この関数は何も返しません(void型です)。

使用例1:末尾から要素を削除する

以下のコードでは、pop_back()関数を使用して、listの末尾から要素を削除しています。

#include <bits/stdc++.h>
using namespace std;
int main(){
    // リストを作成
    list<int> myList;
    // リストに要素を挿入
    myList.push_back(4);
    myList.push_back(9);
    myList.push_back(1);
    myList.push_back(3);
    // 要素削除前のリストを表示
    cout<<"list elements before deletion : ";
    for (auto i = myList.begin(); i != myList.end(); i++)
        cout << *i << " ";
    // pop_back()を使って末尾から要素を削除
    myList.pop_back();
    // 末尾の要素を削除した後のリストを表示
    cout << "\nList after deleting element from the end: ";
    for (auto i = myList.begin(); i != myList.end(); i++)
        cout << *i << " ";
    return 0;
}

出力結果

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

list elements before deletion : 4 9 1 3
List after deleting element from the end: 4 9 1

使用例2:pop_back()を活用した要素の積の計算

次のコードでは、pop_back()関数を使ってlistの末尾から要素を順番に削除しながら、同時にリスト内のすべての数値の積を計算しています。

#include <bits/stdc++.h>
using namespace std;
int main(){
    list<int> myList;
    int product = 1;
    myList.push_back (40);
    myList.push_back (20);
    myList.push_back (30);
    while (!myList.empty()){
        product*=myList.back();
        myList.pop_back();
    }
    cout<<"The product of elements in my list : "<<product<< '\n';
    return 0;
}

出力結果

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

The product of elements in my list : 24000

まとめ

list::pop_back()は、listコンテナの末尾から要素を効率的に削除できる便利な関数です。計算量はO(1)で一定であり、back()関数と組み合わせることで、末尾から順に要素を取り出しながら処理を行うパターンにも活用できます。ただし、空のリストに対して呼び出すと未定義動作となるため、empty()関数で事前にチェックすることが重要です。

  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();パラメータこの関数は、いかなるパラメータも受け取りません。戻り値この関数は、リストの最後の要素の値を返します。なお、リストが空の場合の動作は未定義となるため、呼び出し前にリ