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

C++ STLのforward_list::push_front()とforward_list::pop_front()の使い方を解説

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

STLにおけるforward_listとは?

forward_list(前方リスト)は、シーケンス内の任意の位置に対して定数時間で挿入・削除操作を行えるシーケンスコンテナです。内部的には単方向リンクリストとして実装されており、各要素が次の要素へのリンクを持つことで、シーケンスの順序が維持されます。

forward_list::push_front()とは?

forward_list::push_front()は、C++ STLに組み込まれた関数で、<forward_list>ヘッダーファイル内で宣言されています。push_front()は、forward_listの先頭に要素や値を挿入するために使用されます。この関数を呼び出すと、コンテナ内にすでに存在していた最初の要素が2番目になり、新しく挿入された要素がforward_listコンテナの最初の要素となります。同時に、コンテナのサイズは1つ増加します。

構文

flist_container1.push_front(const value_type& value);

この関数が受け取るパラメータは1つだけです。先頭に挿入したい値を指定します。

戻り値

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

push_front()の使用例

サンプルコード

以下のコードでは、push_front()操作を使ってリストの先頭に要素を挿入し、その後sort()関数でリストの要素をソートしています。

#include <forward_list>
#include <iostream>
using namespace std;
int main(){
    forward_list<int> forwardList = {12, 21, 22, 24};
    //push_front()関数でリストの先頭に要素を挿入
    forwardList.push_front(78);
    cout<<"Forward List contains: ";
    for (auto i = forwardList.begin(); i != forwardList.end(); ++i)
        cout << ' ' << *i;
    //ソート操作後のリスト
    forwardList.sort();
    cout<<"\nForward List after performing sort operation : ";
    for (auto i = forwardList.begin(); i != forwardList.end(); ++i)
        cout << ' ' << *i;
}

出力

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

Forward List contains: 78 12 21 22 24
Forward List after performing sort operation : 12 21 22 24 78

forward_list::pop_front()とは?

forward_list::pop_front()は、C++ STLに組み込まれた関数で、<forward_list>ヘッダーファイル内で宣言されています。pop_front()は、forward_listの先頭にある要素を取り除く(削除する)ために使用されます。この関数を呼び出すと、コンテナ内の最初の要素が削除され、その次の要素が新しい最初の要素となります。同時に、コンテナのサイズは1つ減少します。

構文

flist_container1.pop_front();

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

戻り値

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

pop_front()の使用例

サンプルコード

以下のコードでは、C++ STLに用意されているpop_front()操作を使って、リストの先頭要素を削除しています。

#include <forward_list>
#include <iostream>
using namespace std;
int main(){
    forward_list<int> forwardList = {10, 20, 30 };
    //pop操作適用前のリスト
    cout<<"list before applying pop operation : ";
    for(auto i = forwardList.begin(); i != forwardList.end(); ++i)
        cout << ' ' << *i;
    //pop操作適用後のリスト
    cout<<"\nlist after applying pop operation : ";
    forwardList.pop_front();
    for (auto j = forwardList.begin(); j != forwardList.end(); ++j)
        cout << ' ' << *j;
}

出力

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

list before applying pop operation : 10 20 30
list after applying pop operation : 20 30
  1. C++ STL の forward_list::unique() 関数の使い方と動作を徹底解説

    forward_list::unique() とはC++ 標準ライブラリに含まれる forward_list::unique() は、forward_list(前方リスト)から重複する要素を削除するためのメンバ関数です。forward_list はシーケンスコンテナの一種で、コンテナ内の任意の位置に対して定数時間での挿入・削除操作が可能です。内部的には単方向連結リストとして実装されており、各要素が次の要素へのリンクを持つことで順序が維持されます。unique() を呼び出すと、直前の要素と等しいと判定された要素だけがコンテナから削除されます。つまり、この関数が取り除くのは「隣接する重複」のみで

  2. C++ STLのforward_list::emplace_after()とemplace_front()の使い方を徹底解説

    本記事では、C++におけるforward_list::emplace_after()とforward_list::emplace_front()関数の動作について詳しく解説します。 forward_listは、前後双方向に走査できる通常のリスト(std::list)とは異なり、次の要素とのリンクのみを保持する片方向リンクリストです。そのため前方方向にしかイテレーションできませんが、その分メモリ効率に優れています。 forward_list::emplace_after()とforward_list::emplace_front()はC++標準ライブラリの一部であり、利用するには<forw