#include #include #include #include struct Person { std::string name; int born; int died; }; auto lifespan = [](Person p) { return p.died - p.born; }; void show(const std::vector& persons, std::string message) { std::cout << '\n' << message << "\n\n"; for (auto p : persons) { std::cout << p.name << '\t' << p.born << '-' << p.died << ' ' << lifespan(p) << '\n'; } } int main() { auto v = std::vector { { "Galilei", 1564, 1642 }, { "Newton" , 1642, 1726 }, { "Hawking", 1942, 2018 }, }; namespace rg = std::ranges; rg::sort(v, {}, &Person::name); show(v, "--- sorted by name:"); rg::sort(v, {}, &Person::born); show(v, "--- sorted by year of birth:"); rg::sort(v, rg::greater{}, lifespan); show(v, "--- sorted by lifespan:"); }