Массив используется для хранения нескольких данных, и количество элементов массива не может быть изменено во время выполнения. Эту проблему можно решить, используя вектор, который работает как динамический массив. В классе векторов существуют различные функции для добавления и удаления элемента из вектора. Функция стирания() используется для удаления одного или нескольких элементов из вектора во время выполнения, что уменьшает размер вектора. Использование этой функции было объяснено в этом уроке.
Синтаксис:
Ниже приведены два типа синтаксиса этой функции.
стереть итератор ( позиция итератора ) ;
Вышеупомянутая функция стирания() используется для удаления одного элемента из вектора, возвращает итератор и указывает на элемент, за которым следует последний стертый элемент.
стереть итератор ( начальная_позиция итератора, конечная_позиция итератора ) ;
Вышеупомянутая функция стирания() используется для удаления нескольких элементов из вектора на основе позиции, указанной в первом и втором аргументах этой функции.
Предварительное условие:
Прежде чем просматривать примеры из этого руководства, вам необходимо проверить, установлен ли в системе компилятор g++. Если вы используете Visual Studio Code, установите необходимые расширения для компиляции исходного кода C++ для создания исполняемого кода. Здесь приложение Visual Studio Code использовалось для компиляции и выполнения кода C++. Ниже показаны различные варианты использования функции стирания() для вставки элементов в вектор.
Пример 1. Удаление первого элемента element
Создайте файл C++ со следующим кодом, чтобы удалить элемент из начала вектора. В коде использован вектор строковых значений. Значения вектора были напечатаны до и после удаления первого элемента из вектора с помощью функции стирания() с одним параметром.
//Подключаем необходимые библиотеки#include
#include <вектор>
с использованием пространство имен стандартный ;
//Отображение значений вектора
пустота display_vector ( вектор < нить > фрукты )
{
//Инициализируем счетчик
интервал прилавок '=' 1 ;
//Итерируем и печатаем элементы вектора с помощью цикла
для ( авто он '=' фрукты. начинать ( ) ; он ! '=' фрукты. конец ( ) ; он ++ )
{
//Проверяем, является ли элемент последним элементом или нет
если ( прилавок ! '=' фрукты. размер ( ) )
расчет << * он << ', ' ;
еще
расчет << * он ;
//Увеличиваем счетчик на 1
прилавок ++ ;
}
расчет << конец ;
}
интервал основной ( пустота ) {
//Объявляем вектор строковых данных
вектор < нить > фрукты '=' { 'Апельсин' , 'Банан' , 'Манго' , «Джек Фрут» , Личи } ;
//Распечатываем существующие значения вектора
расчет << 'Значения вектора перед удалением: ' << конец ;
display_vector ( фрукты ) ;
//Удаляем первый элемент из вектора
фрукты. стереть ( фрукты. начинать ( ) ) ;
//Распечатываем существующие значения вектора после удаления
расчет << ' \п Значения вектора после удаления: ' << конец ;
display_vector ( фрукты ) ;
возвращаться 0 ;
}
Выход:
Следующий вывод появится после выполнения приведенного выше кода.
Пример 2. Удаление нескольких элементов
Создайте файл C++ со следующим кодом, чтобы удалить несколько элементов из вектора с помощью функции стирания(). В коде использован вектор целочисленных значений. Здесь использовались два итератора для установки диапазона элементов, удаленных из вектора. Функция стирания() использовалась с двумя параметрами для удаления нескольких элементов из вектора.
//Подключаем необходимые библиотеки#include <вектор>
#include
с использованием пространство имен стандартный ;
//Отображение вектора
пустота display_vector ( вектор < интервал > цифры )
{
//Распечатываем значения вектора с помощью цикла
для ( авто он '=' цифры. начинать ( ) ; он ! '=' цифры. конец ( ) ; он ++ )
расчет << * он << ' ' ;
//Добавляем новую строку
расчет << ' \п ' ;
}
интервал основной ( ) {
//Объявляем вектор целочисленных данных
вектор < интервал > intArray { 678 , 435 , 960 , 231 , 800 , 387 , 634 , 267 , 409 , 294 } ;
//Распечатываем существующие значения вектора
расчет << 'Значения вектора перед удалением: ' << конец ;
display_vector ( intArray ) ;
//Объявляем два итератора для удаления диапазона элементов из вектора
вектор < интервал > :: итератор началоЭле, конецЭле ;
//Устанавливаем итератор на первую позицию
начни их '=' intArray. начинать ( ) ;
//Увеличиваем начальный итератор на 2
продвигать ( начни их, 2 ) ;
//Устанавливаем итератор на последнюю позицию
конецЭле '=' intArray. конец ( ) ;
//Уменьшаем конечный итератор на 3
продвигать ( конецЭле, - 3 ) ;
//Удалить диапазон элементов
intArray. стереть ( началоЭле, конецЭле ) ;
//Распечатываем существующие значения вектора после удаления
расчет << ' \п Значения вектора после удаления: ' << конец ;
display_vector ( intArray ) ;
возвращаться 0 ;
}
Выход:
Следующий вывод появится после выполнения приведенного выше кода. В соответствии с диапазоном итераторов удалены элементы с 3-й по 7-ю позицию вектора.
Пример 3. Удаление определенных элементов
Создайте файл C++ со следующим кодом, чтобы удалить определенные элементы вектора с помощью функции стирания(). В коде объявлен вектор из 7 целочисленных элементов. Затем цикл for используется для перебора элементов вектора и удаления из вектора тех элементов, которые не делятся на 5.
//Подключаем необходимые библиотеки#include
#include <вектор>
с использованием пространство имен стандартный ;
интервал основной ( )
{
//Объявляем вектор целочисленных данных
вектор < интервал > цифры '=' { 78 , Четыре пять , 67 , 25 , 98 , 75 , 52 } ;
расчет << «Значения вектора перед удалением: \п ' ;
для ( интервал константа & я : цифры ) {
расчет << я << '' ;
}
расчет << конец ;
//Удаляем из вектора числа, которые не делятся на 5
для ( авто он '=' цифры. начинать ( ) ; он ! '=' цифры. конец ( ) ; он ++ )
{
//Проверяем, делится ли число на 5 или нет
если ( * он % 5 ! '=' 0 )
{
//Удалим элемент по итератору
цифры. стереть ( он -- ) ;
}
}
расчет << «Значения вектора после удаления: \п ' ;
для ( интервал константа & я : цифры ) {
расчет << я << '' ;
}
расчет << конец ;
возвращаться 0 ;
}
Выход:
Следующий вывод появится после выполнения приведенного выше кода. Вывод показывает, что вектор содержит элементы, делящиеся только на 5, а другие элементы были удалены.
Заключение:
В этом уроке были показаны различные варианты использования функции стирания() для удаления векторных элементов. В C++ имеется множество других функций для удаления элемента из вектора, и эти функции могут удалять по одному элементу за раз. Но как одиночные, так и множественные элементы из любой позиции вектора можно удалить с помощью функции векторного стирания().