pop_back()函数详解

发布时间:2023-05-21

一、pop_back()异常

pop_back() 是 C++ 中 vector 容器中的一个函数,用于删除 vector 容器中的最后一个元素,并将容器的大小减小一个。但是在使用 pop_back() 函数时,我们需要注意一些可能会出现的异常。 1、如果 vector 容器为空,即没有元素,那么 pop_back() 函数会抛出 std::out_of_range 异常。

try {
   myvec.pop_back();
} catch (std::out_of_range& e) {
   std::cout << "pop_back()失败,vector容器为空。" << std::endl;
}

2、当 vector 容器使用了自定义的 Allocator 时,pop_back() 函数可能会抛出对应的异常。

std::vector<int, myallocator> myvec2;
try {
   myvec2.pop_back();
} catch(std::exception& e) {
   std::cout << "pop_back()失败:" << e.what() << std::endl;
}

二、pop_back()函数写法

pop_back() 函数的基本语法如下:

void pop_back();

pop_back() 函数没有任何参数,因为它总是删除 vector 容器中的最后一个元素。下面是使用 pop_back() 函数删除 vector 容器中最后一个元素的示例:

std::vector<int> myvec {1, 2, 3, 4, 5};
myvec.pop_back();
std::cout << "删除最后一个元素后的vector容器:" << std::endl;
for (auto it=myvec.begin(); it != myvec.end(); ++it)
   std::cout << *it << ", ";
std::cout << std::endl;

输出结果:

删除最后一个元素后的vector容器:
1, 2, 3, 4,

三、push_back()函数

pop_back() 函数和 push_back() 函数是 vector 容器中最常用的两个函数。push_back() 函数用于在 vector 容器的最后一个位置插入新元素。 push_back() 函数的基本语法如下:

void push_back(const T& x);
void push_back(T&& x);

其中,T 表示 vector 容器内的数据类型。push_back() 函数的参数可以是一个左值或者右值。 下面是使用 push_back() 函数向 vector 容器中添加元素的示例:

std::vector<std::string> mystrings;
mystrings.push_back("hello");
mystrings.push_back("world");
std::cout << "vector容器中的字符串元素:" << std::endl;
for (auto it=mystrings.begin(); it != mystrings.end(); ++it)
   std::cout << *it << ", ";
std::cout << std::endl;

输出结果:

vector容器中的字符串元素:
hello, world,

四、back()函数

back() 函数用于查看容器中的最后一个元素,通常与 pop_back() 函数配合使用。 back() 函数的基本语法如下:

T& back();
const T& back() const;

其中,T 表示 vector 容器内的数据类型。 下面是使用 back() 函数查看 vector 容器中的最后一个元素的示例:

std::vector<std::string> mystrings2 {"hello", "world"};
std::cout << "vector容器中的最后一个元素:" << mystrings2.back() << std::endl;

输出结果:

vector容器中的最后一个元素:world