std::includes
Актуально для C++23.
#include <algorithm>
Актуально на 2024-03-11.
Define overload #1
template<class InputIterator1, class InputIterator2> constexpr bool includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2);
Проверяет, присутствуют ли все значения из последовательности [first2, last2] в последовательности [first1, last1].
Вернёт true если это так, иначе false.
Последовательности должны быть отсортированы с помощью оператора "<".
Example, possible implementation
Define overload #2
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2> bool includes(ExecutionPolicy&& exec, ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2);
TODO
Example, possible implementation
Define overload #3
template<class InputIterator1, class InputIterator2, class Compare> constexpr bool includes(InputIterator1 first1, InputIterator1 last1, InputIterator2 first2, InputIterator2 last2, Compare comp);
Проверяет, присутствуют ли все значения из последовательности [first2, last2] в последовательности [first1, last1].
Вернёт true если это так, иначе false.
Сравнение элементов выполняется с помощью бинарного предиката.
Последовательности должны быть отсортированы с помощью должны быть отсортированы с помощью предиката comp.
Example, possible implementation
Define overload #4
template<class ExecutionPolicy, class ForwardIterator1, class ForwardIterator2, class Compare> bool includes(ExecutionPolicy&& exec, ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2, ForwardIterator2 last2, Compare comp);
TODO
Example, possible implementation
Examples
Example 1:
#include <iostream> #include <algorithm> #include <set> int main() { std::multiset<int> set1 = {1, 2, 3, 3, 4, 6}, set2 = {2, 4, 6}, set3 = {2, 4, 5, 6}; auto res1 = std::includes(std::begin(set1), std::end(set1), std::begin(set2), std::end(set2)); auto res2 = std::includes(std::begin(set1), std::end(set1), std::begin(set3), std::end(set3)); std::cout << std::boolalpha << res1 <<std::endl; std::cout << std::boolalpha << res2 <<std::endl; return 0; }
true false
Changelog
C++26
TODOC++23
TODOC++20
TODOC++17
TODOC++14
TODOC++11
TODOSee also
TODO
This page was last modified on 2024-03-11