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
See also
TODO
This page was last modified on 2024-03-11