STL(vector) c++ ....Подскажите алгоритм ...сравнить два vectorА и удалить из первого элементы второго

15 Окт 2019 в 10:41
125 +1
0
Ответы
1

Для сравнения двух векторов и удаления из первого вектора элементов второго вам потребуется использовать стандартные алгоритмы и функции STL. Вот примерный алгоритм, который позволит вам выполнить это:

Создайте два вектора A и B.Наполните их произвольными данными.Примените стандартную функцию std::sort для сортировки обоих векторов.Используйте стандартную функцию std::set_difference для нахождения разности между векторами.Примените стандартную функцию std::erase для удаления элементов из первого вектора.

Вот пример кода на C++, демонстрирующий данный алгоритм:

#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> A = {1, 2, 3, 4, 5};
std::vector<int> B = {3, 4, 5, 6, 7};
std::sort(A.begin(), A.end());
std::sort(B.begin(), B.end());
std::vector<int> result;
std::set_difference(A.begin(), A.end(), B.begin(), B.end(), std::back_inserter(result));
A = result;
for (int i : A) {
std::cout << i << " ";
}
return 0;
}

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

19 Апр 2024 в 11:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир