现在位置: 首页 > C++ 教程 > 正文

C++ <list> pop_back 函数

C++ 容器类 <list> 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> C++ 容器类 <list>