includes [C++ Reference]
Keywords: stl,algorithm,includes
Date: 2009-10-10T10:52:31-0700

[[includes]]
C++ Reference
Translations of this page?:

- en
- br-pt
- cn
- cz
- de
- es
- fr
- it
- jp
- nl
- pl
- ro
- ru
- sk
- tr
- tw

## includes

Syntax:

        #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 );

The includes() algorithm returns `true` if every element in [start2,end2) is also in [start1,end1). Both of the given ranges must be sorted in ascending order. There is no requirement that every element in [start1,end1) or [start2,end2) be unique. If some element appears n times in [start2,end2), [start1,end1) must contain the equivalent element at least n times.

By default, the < operator is used to compare elements. If the strict weak ordering function object cmp is given, then it is used instead.

includes() runs in linear time.

     #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;
     }

Related Topics: set_difference, set_intersection, set_symmetric_difference, set_union

Edit this page • Old revisions
• • • Login • Index • Recent changes • RSS • cc •