C++ <list> pop_back 函数
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;
}
#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;
}
#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>