но каждый элемент вектора должен быть прогнан через функцию (лямбду). Как это лучше сделать? не хочется промежуточный вектор лепить.
предварительно пройтись for_each'ем и поприменять лямбду?
промежуточный вектор
Дык по исходному пройтись...
перегрузка с компаратором не подходит?
Несколько раз функции считать над элементами?
тогда на выходе получим мин макс от исходного вектора, а нужно обработанные лямбдой
минмакс вроде должен один раз по вектору пройтись
Пройтись и сравнивать разные вещи. Там точно ровно N сравнений?
At most max(floor((3/2)*(N−1)), 0) applications of the predicate
О, спасибо. Пересравнения будут, короче
неудивительно, там же надо искать и максимум и минимум
странно все это, почему мне кажется что это можно сделать за О(N)
За N сравнений?
С C++20 ренжами можно придумать через views::transform
https://godbolt.org/z/MjPKcbhs4 сделал такую функциональную обертку над ForwardIterator
Обсуждают сегодня