РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
415 of 815 menu

Функция set_difference

Функция set_difference находит разность двух отсортированных диапазонов и записывает элементы, которые присутствуют в первом диапазоне, но отсутствуют во втором, в контейнер, начиная с указанной позиции. Первым и вторым параметрами функция принимает итераторы начала и конца первого диапазона, третьим и четвёртым - итераторы начала и конца второго диапазона, а пятым - итератор начала контейнера, куда будет записан результат. Оба исходных диапазона должны быть отсортированы.

Синтаксис

set_difference(first1, last1, first2, last2, res)

Пример

Давайте найдём разность двух множеств, заданных векторами {1, 2, 3, 4, 5} и {2, 4}, и выведем результат на экран:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> v1 = {1, 2, 3, 4, 5}; vector<int> v2 = {2, 4}; vector<int> res(5); auto it = set_difference( v1.begin(), v1.end(), v2.begin(), v2.end(), res.begin() ); res.resize(it - res.begin()); for (int n : res) { cout << n << " "; } return 0; }

Результат выполнения кода:

1 3 5

Пример

Давайте найдём разность двух множеств, заданных векторами {"a", "b", "c", "d", "e"} и {"b", "d"}, и выведем результат на экран:

#include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { vector<string> v1 = {"a", "b", "c", "d", "e"}; vector<string> v2 = {"b", "d"}; vector<string> res(5); auto it = set_difference( v1.begin(), v1.end(), v2.begin(), v2.end(), res.begin() ); res.resize(it - res.begin()); for (const string& s : res) { cout << s << " "; } return 0; }

Результат выполнения кода:

"a" "c" "e"

Смотрите также

  • функция set_union,
    которая находит объединение двух множеств
  • функция set_intersection,
    которая находит пересечение двух множеств
  • функция includes,
    которая проверяет вхождение одного диапазона в другой
  • функция merge,
    которая объединяет два отсортированных диапазона
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить