向量与动态数组相同,具有在插入或删除元素时自动调整自身大小的能力,并且容器自动处理其存储。
push_back()函数用于将元素从背面推入向量。在当前最后一个元素之后,将新值插入到向量的末尾,并且容器大小增加1。
句法 :
vectorname.push_back(value)
Parameters :
The value to be added in the back is
passed as the parameter
Result :
Adds the value mentioned as the parameter
to the back of the vector named as vectorname
例子:
Input : myvector = {1, 2, 3, 4, 5};
myvector.push_back(6);
Output :1, 2, 3, 4, 5, 6
Input : myvector = {5, 4, 3, 2, 1};
myvector.push_back(0);
Output :5, 4, 3, 2, 1, 0
错误和异常
1.强大的异常保证–如果引发异常,则容器中没有任何更改。
2.如果向量不支持作为参数传递的值,则它将显示未定义的行为。
// CPP program to illustrate
// push_back() function
#include
#include
using namespace std;
int main()
{
vector myvector{ 1, 2, 3, 4, 5 };
myvector.push_back(6);
// Vector becomes 1, 2, 3, 4, 5, 6
for (auto it = myvector.begin(); it != myvector.end(); ++it)
cout << ' ' << *it;
}
输出:
1 2 3 4 5 6
pop_back()函数用于从背面弹出或弹出向量中的元素。从向量的末尾删除该值,并将容器大小减小1。
句法 :
vectorname.pop_back()
Parameters :
No parameters are passed
Result :
Removes the value present at the end or back
of the given vector named as vectorname
例子:
Input : myvector = {1, 2, 3, 4, 5};
myvector.pop_back();
Output :1, 2, 3, 4
Input : myvector = {5, 4, 3, 2, 1};
myvector.pop_back();
Output :5, 4, 3, 2
错误和异常
1. No-Throw-Guarantee –如果容器不为空,则该函数永远不会引发异常。
2.如果向量为空,则显示未定义的行为。
// CPP program to illustrate
// pop_back() function
#include
#include
using namespace std;
int main()
{
vector myvector{ 1, 2, 3, 4, 5 };
myvector.pop_back();
// Vector becomes 1, 2, 3, 4
for (auto it = myvector.begin(); it != myvector.end(); ++it)
cout << ' ' << *it;
}
输出:
1 2 3 4
pop_back()会与元素一起删除值吗?
当调用pop_back()函数时,最后一个元素将被删除,在这种情况下,值和元素是同一件事。调用存储对象的析构函数,并将向量的长度减1。如果未减小容器的容量,则仍可以访问先前的存储位置,但是在这种情况下,将无法使用已访问的已弹出窗口元素,因为它将导致未定义的行为。
应用程序push_back()和pop_back()
给定一个空向量,请使用push_back函数向其添加整数,然后计算其大小。
Input : 1, 2, 3, 4, 5, 6
Output : 6
算法
1.使用push_back函数将元素添加到向量中
2.检查向量的大小是否为0,如果不是,则将初始化为0的计数器变量递增,并弹出back元素。
3.重复此步骤,直到向量的大小变为0。
4.打印变量的最终值。
// CPP program to illustrate
// Application of push_back and pop_back function
#include
#include
using namespace std;
int main()
{
int count = 0;
vector myvector;
myvector.push_back(1);
myvector.push_back(2);
myvector.push_back(3);
myvector.push_back(4);
myvector.push_back(5);
myvector.push_back(6);
while (!myvector.empty()) {
count++;
myvector.pop_back();
}
cout << count;
return 0;
}
输出:
6