C++ <list> pop_back 関数

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


pop_backは list 内でリンクリストの末尾の要素を削除するための関数です。

pop_backコンテナクラスのメンバ関数であり、リンクリストの最後の要素を削除するために使用されます。

list において、pop_backの時間計算量は O(1) で、非常に効率的です。

単語の意味: popは「ポップ(取り出す)」ことで、backは「後ろ」で、合わせると後ろの要素を取り出すという意味になります。


基本構文とパラメータ

pop_backコンテナクラスのメンバ関数であり、呼び出しにパラメータは必要ありません。

構文形式

void pop_back();

パラメータの説明

  • パラメータ: パラメータなし

関数の説明

  • 戻り値: void(戻り値なし)。
  • 効果: コンテナのsize()サイズは 1 減少します。最後の要素が削除されます。
  • 注意: リンクリストが空の場合、呼び出すことはpop_back未定義の動作になります。

例

例1:基本用法 - 末尾の要素を削除

例

#include <iostream>
#include <list>

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

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

    // 末尾の要素を削除
    numbers.pop_back();
    std::cout << "pop_back() 後: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    numbers.pop_back();
    std::cout << "さらに pop_back() 後: ";
    for(int n : numbers) std::cout << n << " ";
    std::cout << std::endl;

    return 0;
}

実行結果の予想:

原始 list: 10 20 30 40 50
pop_back() 后: 10 20 30 40
再 pop_back() 后: 10 20 30

例2:pop_back の安全な使用

使用前にリンクリストが空かどうかを確認します。

例

#include <iostream>
#include <list>

void safePopBack(std::list<int>& lst) {
    if(!lst.empty()) {
        lst.pop_back();
        std::cout << "削除成功" << std::endl;
    } else {
        std::cout << "リンクリストが空のため、削除できません" << std::endl;
    }
}

int main() {
    std::list<int> data = {1, 2, 3};

    safePopBack(data);
    safePopBack(data);
    safePopBack(data);
    safePopBack(data); // この時点では空

    return 0;
}

実行結果の予想:

削除成功
削除成功
削除成功
連結リストが空のため、削除できません

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

その他の拡張