Пространства имён
Варианты
Действия

includes

Материал из cppreference.com

Синтаксис:

    #include <algorithm>
 
    template< typename InIterA, typename InIterB >
    bool includes( InIterA start1, InIterA end1, InIterB start2, InIterB end2 );
 
    template< typename InIterA, typename InIterB, typename StrictWeakOrdering >
    bool includes( InIterA start1, InIterA end1, InIterB start2, InIterB end2, StrictWeakOrdering cmp );

Алгоритм includes() возвращает true, если каждый элемент из диапазона [start2,end2) есть в диапазоне [start1,end1). Оба диапазона должны быть отсортированы по возрастанию. Не существует требования, чтобы каждый элемент из диапазона [start1,end1) или [start2,end2) был уникальным (встречался только один раз). Если какой-либо элемент встречается n раз в диапазоне [start2,end2), то в диапазоне [start1,end1) он должен встречаться тоже n раз.

По умолчанию для сравнения элементов используется оператор <. Если точность мала, используется объект-функция cmp.

includes() работает за линейное время.

 #include <iostream>
 #include <vector>
 #include <list>
 #include <algorithm>
 
 int main()
 {
   std::vector<int> vec;
   for (int i = 0; i < 10; ++i)
     vec.push_back(i);
 
   std::list<int> lst;
   lst.push_back(2);
   lst.push_back(4);
   lst.push_back(6);
 
   if (std::includes(vec.begin(), vec.end(), lst.begin(), lst.end()))
     std::cout << "lst is a subset of vec." << std::endl;
   else
     std::cout << "lst is NOT a subset of vec." << std::endl;
 
   return 0;
 }

Смотрите также: set_difference, set_intersection, set_symmetric_difference, set_union