Как я могу объединить фильтрацию и проекцию элементов, чтобы можно было фильтровать элементы и находить итераторы по минимальному/максимальному значению?
Код: Выделить всё
#include
#include
#include
#include
struct S {
int n=0;
};
int main() {
std::vector v= { {1}, {2}, {3}, {4}, {5}, {6}, {7} };
const int excluder = 7;
auto it_max = std::ranges::minmax_element(
v | std::views::filter([=](const auto& s) { return s.n != excluder ; }),
std::less(), &S::n
).max;
std::cout n;
}
Сообщение об ошибке:
Код: Выделить всё
:20:24: error: member reference type 'std::ranges::dangling' is not a pointer; did you mean to use '.'?
20 | std::cout n;
| ~~~~~~^~
| .
:20:26: error: no member named 'n' in 'std::ranges::dangling'
20 | std::cout n;
| ~~~~~~ ^
2 errors generated.
Compiler returned: 1
Подробнее здесь: https://stackoverflow.com/questions/791 ... ax-element
Мобильная версия