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

【C++ STL】listのpop_front()関数の使い方を徹底解説


本記事では、C++のpop_front()関数について、その仕組み、構文、そして具体的な使用例を詳しく解説します。

STLにおけるlistとは

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

pop_front()とは

pop_front()は、C++ STLに標準で組み込まれている関数で、<list>ヘッダファイル内で宣言されています。この関数は、listコンテナの先頭から要素を削除するために使用されます。具体的には、コンテナの最初の要素を削除し、それまで2番目だった要素が新しい先頭要素となります。関数を呼び出すたびに、コンテナのサイズは1つずつ減少していきます。

構文

void pop_front ();

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

戻り値

この関数には戻り値がありません。単にコンテナから先頭の要素を削除(ポップ)するだけの動作を行います。

使用例1:先頭要素を削除する基本的な使い方

#include <bits/stdc++.h>
using namespace std;
int main(){
    // リストを作成
    list<int> myList;
    // リストへ要素を挿入
    myList.push_back(1);
    myList.push_back(2);
    myList.push_back(3);
    myList.push_back(4);
    // pop_front()適用前のリストを表示
    cout<<"List contains : ";
    for(auto i = myList.begin(); i != myList.end(); i++)
        cout << *i << " ";
    // pop_front()で先頭の要素を削除
    myList.pop_front();
    // 削除後のリストを表示
    cout<<"\nList after removing an element from front: ";
    for (auto i = myList.begin(); i != myList.end(); i++)
        cout << *i << " ";
    return 0;
}

出力結果

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

List contains : 1 2 3 4
List after removing an element from front: 2 3 4

使用例2:pop_front()で全要素を順番に削除する

#include <iostream>
#include <list>
int main (){
    std::list<int> myList;
    myList.push_back (10);
    myList.push_back (20);
    myList.push_back (30);
    std::cout<<"removing the elements in a list : ";
    while (!myList.empty()){
        std::cout << ' ' << myList.front();
        myList.pop_front();
    }
    std::cout<<"\nSize of my empty list is: " << myList.size() << '\n';
    return 0;
}

出力結果

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

removing the elements in a list : 10 20 30
Size of my empty list is: 0

このように、pop_front()をempty()やfront()と組み合わせることで、リストの全要素を先頭から順に処理しながら削除することができます。ループ終了後、リストのサイズが0になっていることも確認できます。

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