C++ <list> push_front 関数

C++ 容器类 <list>C++ コンテナクラス <list>


push_frontlist で使用されるリンクリストの先頭に要素を追加する関数であり、リンクリストの特徴的な操作の1つです。

push_frontメンバ関数であり、~に使用されますリンクリスト (list)の先頭新しい要素を追加します。

vector と異なり、list先頭への要素挿入の時間計算量は O(1) であり、非常に効率的です。

単語の意味: pushは「押し込む」という意味で、frontは「前」を意味し、合わせると「前に押し込む」となり、とても分かりやすいです。


基本構文とパラメータ

push_frontコンテナクラスのメンバ関数であり、呼び出しにパラメータは不要です。

構文形式

void push_front(const T& value);
void push_front(T&& value);  // C++11 之后(支持右值)

パラメータの説明

  • パラメータ: value
    • 型:コンテナ定義時に指定した要素型と同じ
    • 説明:コンテナの先頭に追加したい値。

関数の説明

  • 戻り値: void(戻り値はありません)。
  • 効果:コンテナのsize()は 1 増えます。新しい要素はリンクリストの最初の要素になります。

例

例を通して徹底的にマスターしましょうpush_frontの使い方を。

例1:基本用法 - 先頭に要素を追加

例

#include <iostream>
#include <list>

int main() {
    std::list<int> numbers = {20, 30, 40};

    std::cout << "元の list: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    // 先頭に要素を追加
    numbers.push_front(10);

    std::cout << "push_front(10) 後: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    return 0;
}

実行結果の予想:

原始 list: 20 30 40
push_front(10) 后: 10 20 30 40

コードの解説:

  • push_front(10)10 をリンクリストの先頭に追加し、最初の要素にします。
  • 例2:リンクリストの構築

    使用してpush_front先頭から簡単にリンクリストを構築できます。

    例

    #include <iostream>
    #include <list>

    int main() {
        std::list<int> data;

        // 先頭に順に追加すると、最終的な順序は追加順と逆になります
        data.push_front(5);
        data.push_front(4);
        data.push_front(3);
        data.push_front(2);
        data.push_front(1);

        std::cout << "構築したリンクリスト: ";
        for(int n : data) std::cout << n << " ";
        std::cout << std::endl;

        return 0;
    }

    実行結果の予想:

    构建的链表: 1 2 3 4 5
    

    コードの解説:

    • 毎回push_front新しい要素を先頭に追加します。
    • 最終的なリンクリストの順序は 1 -> 2 -> 3 -> 4 -> 5 です。

    C++ 容器类 <list>C++ コンテナクラス <list>

    その他の拡張