📜  C++ STL中的vector :: push_back()和vector :: pop_back()

📅  最后修改于: 2021-05-30 15:51:42             🧑  作者: Mango

向量与动态数组相同,具有在插入或删除元素时自动调整自身大小的能力,并且容器自动处理其存储。

向量:: push_back()

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()()

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
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”