vector :: push_back () и vector :: pop_back () в C ++ STL

Опубликовано: 31 Декабря, 2021


Векторы такие же, как динамические массивы, с возможностью автоматического изменения размера при вставке или удалении элемента, а их хранение автоматически обрабатывается контейнером.

вектор :: push_back ()

Функция push_back () используется для вставки элементов в вектор сзади. Новое значение вставляется в вектор в конце, после текущего последнего элемента, и размер контейнера увеличивается на 1.
Синтаксис:

имя_вектора .push_back ( значение )
Параметры:
Значение, которое будет добавлено сзади: 
передается как параметр
Результат :
Добавляет значение, указанное как параметр 
к задней части вектора с именем vectorname

Примеры:

Ввод: myvector = {1, 2, 3, 4, 5};
        myvector.push_back (6);
Выход: 1, 2, 3, 4, 5, 6

Ввод: myvector = {5, 4, 3, 2, 1};
        myvector.push_back (0);
Выход: 5, 4, 3, 2, 1, 0

Ошибки и исключения

1. Сильная гарантия исключения - если исключение выброшено, в контейнере нет изменений.
2. Если значение, переданное в качестве аргумента, не поддерживается вектором, он показывает неопределенное поведение.

Выход:

1 2 3 4 5 6
вектор :: pop_back () ()

Функция pop_back () используется для извлечения или удаления элементов из вектора сзади. Значение удаляется из вектора с конца, а размер контейнера уменьшается на 1.
Синтаксис:

имя вектора .pop_back ()
Параметры:
Параметры не передаются
Результат :
Удаляет значение, присутствующее в конце или в конце 
данного вектора с именем vectorname

Примеры:

Ввод: myvector = {1, 2, 3, 4, 5};
        myvector.pop_back ();
Выход: 1, 2, 3, 4

Ввод: myvector = {5, 4, 3, 2, 1};
        myvector.pop_back ();
Выход: 5, 4, 3, 2

Ошибки и исключения

1. Гарантия отсутствия броска - если контейнер не пуст, функция никогда не генерирует исключения.
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, а затем вычислите его размер.

Ввод: 1, 2, 3, 4, 5, 6
Выход: 6

Алгоритм
1. Добавьте элементы в вектор с помощью функции push_back.
2. Проверьте, равен ли размер вектора 0, если нет, увеличьте значение счетчика, инициализированного как 0, и вытолкните задний элемент.
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
Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .