📜  c++ vector pop_back - C++ (1)

📅  最后修改于: 2023-12-03 15:29:51.680000             🧑  作者: Mango

C++中的vector pop_back

vector是C++标准库中的一个重要容器,支持动态添加和删除元素。当需要删除vector中最后一个元素时,可以使用pop_back函数。本文将为您介绍如何使用pop_back函数及其注意事项。

pop_back函数的用法

pop_back函数实现的功能是删除vector中最后一个元素。它没有参数,也没有返回值。使用方法如下:

#include <vector>
using namespace std;

vector<int> vec{1, 2, 3, 4, 5};
vec.pop_back(); // 删除5

pop_back函数会将vector的大小(size)减少1,并自动销毁最后一个元素,释放其占用的内存空间。如果vector本身为空,则调用pop_back函数会导致不可预期的行为。

pop_back函数的注意事项
  • pop_back函数可以抛出异常

如果vector的分配器(allocator)分配内存失败,pop_back函数可能会抛出bad_alloc异常。为了避免在这种情况下的程序崩溃,可以使用异常处理机制来处理异常,比如:

try{
  vec.pop_back();
}catch(const bad_alloc& e){
  // 处理异常信息
}
  • pop_back函数可能会导致迭代器失效

如果在调用pop_back()函数之后,vector中有其他元素被重新分配了内存位置,那么之前生成的指向vector元素的迭代器(包括end()函数返回的迭代器)可能会失效。这意味着您应该及时更新指向元素的迭代器,并重新检查代码的正确性。

  • pop_back函数的时间复杂度是常数时间

删除vector中最后一个元素的时间复杂度是常数级别的,与vector中元素数量无关。这是因为vector以动态数组的形式存储其元素,因此可以在常数时间内访问最后一个元素并释放其占用的内存空间。

总结

本文介绍了在C++中如何使用pop_back函数删除vector中的最后一个元素,以及使用过程中需要注意的一些问题。了解这些内容对于正确使用vector容器是至关重要的。