Вы можете использовать std::max_element
, который поставляется с заголовком <algorithm>
и передавать пользовательский предикат сравнения.
#include <algorithm>
#include <iostream>
const auto longest = std::max_element(strings.cbegin(), strings.cend(),
[](const std::string& lhs, const std::string& rhs) { return lhs.size() < rhs.size(); });
if (longest != strings.cend())
std::cout << *longest << "\n";
Это явно не так кратко, как версия Python,и это где диапазоны на помощь.С проекциями range-v3 это сводится к
#include <range/v3/all.hpp>
const auto longest = ranges::max_element(strings, std::less<>{}, &std::string::size);