С помощью std::ranges::max можно использовать проекцию следующим образом
std::vector v = {
{'a',2,1.0}, {'c',1,3.0}, {'b',4,2.0}, {'d',3,4.0}
};
auto m = std::ranges::max (v, {}, [](auto t) { return std::get(t); } );
Я посмотрел в std какой-нибудь...