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

Функция set_intersection

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

Синтаксис

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

Пример

Давайте найдем пересечение двух векторов {1, 2, 3, 4, 5} и {3, 4, 5, 6, 7}:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> a = {1, 2, 3, 4, 5}; vector<int> b = {3, 4, 5, 6, 7}; vector<int> res(5); auto it = set_intersection(a.begin(), a.end(), b.begin(), b.end(), res.begin()); res.resize(it - res.begin()); for (int x : res) { cout << x << " "; } return 0; }

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

3 4 5

Пример

Давайте найдем пересечение двух векторов {"a", "b", "c", "d", "e"} и {"c", "d", "e", "f", "g"}:

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

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

"c" "d" "e"

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

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