向量与动态数组相同,它们具有在插入或删除元素时自动调整大小的能力,并且容器自动处理其存储。
push_back()函数用于将元素从背面推入向量。在当前最后一个元素之后,将新值插入到向量的末尾,并且容器大小增加1。
用法:
vectorname.push_back(value) 参数: 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 <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> 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() 参数: 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 <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> 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 <iostream>
#include <vector>
using namespace std;
int main()
{
int count = 0;
vector<int> 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
相关用法
- Java HijrahDate getEra()用法及代码示例
- Java HijrahDate getChronology()用法及代码示例
- Java HijrahDate equals()用法及代码示例
- Java HijrahDate atTime()用法及代码示例
- Java HijrahChronology range()用法及代码示例
- Java HijrahChronology zonedDateTime(TemporalAccessor)用法及代码示例
注:本文由纯净天空筛选整理自AyushSaxena大神的英文原创作品 vector::push_back() and vector::pop_back() in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。