Добавить вариант std::any_of, all_of, none_of со значением
Добавить перегрузки к методам std::any_of, all_of, none_of, которые примают значение в качестве референса. Метод std::find имеет такую перегрузку
template< class InputIt, class T >
constexpr InputIt find( InputIt first, InputIt last, const T& value );
Ожидаемое сигнатура:
template< class InputIt, class T >
constexpr bool any_of( InputIt first, InputIt last, const T& value );
Мотивация Рассмотрим простой пример с использованием std::any_of. Предположим имеем массив чисел, и хотим узнать содержит ли массив какое-то конкретное число.
С std::find мы напишем
vector<int> v{1,2,3};
int target = 1;
const bool contains = std::find(v.begin(), v.end(), target) != v.end;
C std::any_of:
vector<int> v{1,2,3};
int target = 1;
const bool contains = std::any_of(v.begin(), v.end(), [target](int value){ return target == value; });
Мое предложение призвано упростить код. Будет выглядить след. образом.
vector<int> v{1,2,3};
int target = 1;
const bool contains = std::any_of(v.begin(), v.end(), value);
Полезные ссылки:
- https://en.cppreference.com/w/cpp/algorithm/all_any_none_of
- https://en.cppreference.com/w/cpp/algorithm/find
Хорошая идея, я себе понапридумывал функций equalTo, notEqualTo ... как раз, что бы решить эту проблему
std::any_of(v.begin(), v.end(),equalTo(5));
Это называется contains
Это называется contains
Вместо перегрузки предлагаете алгоритм с другим именем ?