Размер вектора можно уменьшить, используя различные встроенные функции C ++. Функция pop_back () — одна из них. Он используется для удаления последнего элемента вектора сзади и уменьшения размера вектора на 1. Но последний элемент вектора не удаляется навсегда, как функция erase (). В этом руководстве были объяснены различные варианты использования этой функции.
Синтаксис:
vector::pop_back();
Эта функция не имеет аргументов и ничего не возвращает.
Предварительные условия:
Прежде чем проверять примеры этого руководства, вы должны проверить, установлен ли компилятор g ++ в системе. Если вы используете Visual Studio Code, установите необходимые расширения для компиляции исходного кода C ++ и создания исполняемого кода. Здесь приложение Visual Studio Code было использовано для компиляции и выполнения кода C ++. Способы уменьшения размера вектора с помощью функции pop_back () показаны в следующей части этого руководства.
Пример 1: удалить несколько элементов из вектора
Создайте файл C ++ со следующим кодом, чтобы удалить два элемента из контейнера вектора путем уменьшения размера вектора с помощью функции pop_back (). В коде объявлен вектор из 5 строковых значений. Функция pop_back () вызывалась здесь два раза, чтобы временно удалить два последних элемента из вектора и уменьшить размер вектора на 2. Содержимое вектора было напечатано два раза до и после использования функции pop_back ().
//Include necessary libraries
#include <iostream>
#include <vector>
using namespace std;
int main() {
//Declare a vector of string values
vector<string> flowers = {«Rose», «Lity», «Marigold», «Tulip», «Water Liiy»};
cout << «The values of the vector :\n«;
//Iterate the vector using loop to print the values
for(int i = 0; i < flowers.size(); ++i)
cout << flowers[i] << » «;
cout << «\n«;
//Remove the last two values from the vector
flowers.pop_back();
flowers.pop_back();
cout << «\nThe values of the vector after remove :\n«;
//Iterate the vector using loop to print the values
for(int i = 0; i < flowers.size(); ++i)
cout << flowers[i] << » «;
cout << «\n«;
return 0;
}
Выход:
Следующий вывод появится после выполнения вышеуказанного кода.
Пример 2: Создать новый вектор из другого вектора
Создайте файл C ++ со следующим кодом для вставки определенных значений в пустой вектор из другого вектора путем удаления элементов с помощью функции pop_back (). В коде объявлены вектор из 8 целых чисел и пустой вектор целочисленного типа. Цикл while использовался для перебора каждого элемента первого вектора и вставки элемента в новый вектор, если число делится на 2. Здесь также была вычислена сумма всех четных чисел. Каждый элемент первого вектора будет удален функцией pop_back () на каждой итерации цикла, чтобы достичь условия завершения цикла.
//Include necessary libraries
#include <iostream>
#include <vector>
using namespace std;
int main ()
{
//Declare a vector of integer data
vector<int> intVector{ 5, 9, 4, 7, 2, 8, 1, 3 };
//Declare an empty vector
vector<int> newVector;
cout << «The values of the original vector :\n«;
//Iterate the vector using loop to print the values
for(int i = 0; i < intVector.size(); ++i)
cout << intVector[i] << » «;
cout << «\n«;
//Initialize the result
int result = 0;
//Iterate the loop until the vector becomes empty
while(!intVector.empty())
{
/*
Find out the even numbers to insert into the newVector
and calculate the sum of the even numbers
*/
if (intVector.back() % 2 == 0)
{
result += intVector.back();
newVector.push_back(intVector.back());
}
//Remove element from the end of the intVactor
intVector.pop_back();
}
cout << «The values of the new vector :\n«;
//Iterate the vector using loop to print the values
for(int i = 0; i < newVector.size(); ++i)
cout << newVector[i] << » «;
cout << «\n«;
cout << «The sum of all even numbers : « << result << ‘\n‘;
return 0;
}
Выход:
Следующий вывод появится после выполнения вышеуказанного кода. В первом векторе было три четных числа. Есть 8, 2 и 4.
Пример 3: проверьте, удален ли последний элемент вектора
Ранее упоминалось, что pop_back () не удаляет элементы из вектора навсегда, а удаляет элемент только за счет уменьшения размера вектора. Таким образом, удаленный элемент остается в той же позиции, пока размер вектора не увеличится и не заменит элемент другим элементом. Создайте файл C ++ со следующим кодом, чтобы проверить, существует ли элемент, удаленный функцией pop_back (), или нет. Последняя позиция исходного вектора была напечатана до и после использования функции pop_back ().
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//Declare a vector of integer data
vector<int> intVector{ 54, 19, 46, 72, 22, 83, 10, 53 };
//Declare an empty vector
vector<int> newVector;
//Declare an integer variable
int length;
//Print the last element based on the size of the vector
length = intVector.size();
cout << «The current size of the vector:» << length << «\n«;
cout << «The last value of the vector before remove:» << intVector[length—1] << «\n«;
//Remove the element from the end of the vector
intVector.pop_back();
//Print the last element based the size of the vector after remove
length = intVector.size();
cout << «The current size of the vector:» << length << «\n«;
cout << «The last value of the vector after remove:» << intVector[length] << «\n«;
return 0;
}
Выход:
Следующий вывод появится после выполнения вышеуказанного кода. Выходные данные показывают, что размер вектора уменьшился на 1, но элемент последней позиции исходного вектора все еще существует.
Заключение
В этом руководстве на простых примерах описаны три различных использования функции pop_back (). Основная цель использования этой функции будет понятна читателям после практики примеров из этого руководства.