Функция remove C++ <list>
removeиспользуется в list, чтобыудалить все элементы, равные указанному значениюявляется функцией, представляющей собой высокоэффективную операцию, уникальную для связных списков.
removeявляется функцией-членом класса-контейнера, используемой для удаления всех элементов связного списка, равных указанному значению.
В list,removeвременная сложность — O(n).
Определения слов: removeозначает "remove", т. е. удалить все элементы, равные указанному значению.
Базовый синтаксис и параметры
Формат синтаксиса
void remove(const T& value);
Описание параметра
- Параметр:
value- значение элемента, который нужно удалить
Описание функции
- Возвращаемое значение:
void(Нет возвращаемого значения). - Эффект: удалить все элементы в связном списке, равные value.
Пример
Пример 1: Удалить все элементы, равные указанному значению
Пример
#include <iostream>
#include <list>
int main() {
std::list<int> numbers = {1, 2, 3, 2, 4, 2, 5};
std::cout << "Исходный: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// Удалить все элементы, равные 2
numbers.remove(2);
std::cout << "После remove(2): ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
#include <list>
int main() {
std::list<int> numbers = {1, 2, 3, 2, 4, 2, 5};
std::cout << "Исходный: ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
// Удалить все элементы, равные 2
numbers.remove(2);
std::cout << "После remove(2): ";
for(int n : numbers) std::cout << n << " ";
std::cout << std::endl;
return 0;
}
Ожидаемый результат выполнения:
原始: 1 2 3 2 4 2 5 remove(2) 后: 1 3 4 5
Пример 2: Удалить строку
Пример
#include <iostream>
#include <list>
#include <string>
int main() {
std::list<std::string> words = {"apple", "banana", "apple", "cherry", "apple"};
std::cout << "Исходный: ";
for(const auto& w : words) std::cout << w << " ";
std::cout << std::endl;
words.remove("apple");
std::cout << "remove(\"apple\") После: ";
for(const auto& w : words) std::cout << w << " ";
std::cout << std::endl;
return 0;
}
#include <list>
#include <string>
int main() {
std::list<std::string> words = {"apple", "banana", "apple", "cherry", "apple"};
std::cout << "Исходный: ";
for(const auto& w : words) std::cout << w << " ";
std::cout << std::endl;
words.remove("apple");
std::cout << "remove(\"apple\") После: ";
for(const auto& w : words) std::cout << w << " ";
std::cout << std::endl;
return 0;
}
Ожидаемый результат выполнения:
原始: apple banana apple cherry apple
remove("apple") 后: banana cherry
Другие расширения