#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
struct Person {
std::string name;
int age;
};
// Compare using std::string's less-than operator.
bool operator< (const Person& lhs, const Person& rhs) {
return lhs.name < rhs.name;
}
int main() {
// Create vector of Person objects and initialize with some random names.
std::vector<Person> crew { {"Bob", 45}, {"Steve", 25}, {"Andy", 30} };
// Sort vector using < operator.
std::sort(begin(crew), end(crew));
// Output all elements in vector.
for(const auto& p : crew) {
std::cout << p.name << " is " << p.age << " years old" << std::endl;
}
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IFBlcnNvbiB7CiAgICBzdGQ6OnN0cmluZyBuYW1lOwogICAgaW50IGFnZTsKfTsKCi8vIENvbXBhcmUgdXNpbmcgc3RkOjpzdHJpbmcncyBsZXNzLXRoYW4gb3BlcmF0b3IuCmJvb2wgb3BlcmF0b3I8IChjb25zdCBQZXJzb24mIGxocywgY29uc3QgUGVyc29uJiByaHMpIHsKICAgIHJldHVybiBsaHMubmFtZSA8IHJocy5uYW1lOwp9CiAKaW50IG1haW4oKSB7CiAgICAvLyBDcmVhdGUgdmVjdG9yIG9mIFBlcnNvbiBvYmplY3RzIGFuZCBpbml0aWFsaXplIHdpdGggc29tZSByYW5kb20gbmFtZXMuCiAgICBzdGQ6OnZlY3RvcjxQZXJzb24+IGNyZXcgeyB7IkJvYiIsIDQ1fSwgeyJTdGV2ZSIsIDI1fSwgeyJBbmR5IiwgMzB9IH07CgogICAgLy8gU29ydCB2ZWN0b3IgdXNpbmcgPCBvcGVyYXRvci4KICAgIHN0ZDo6c29ydChiZWdpbihjcmV3KSwgZW5kKGNyZXcpKTsKCiAgICAvLyBPdXRwdXQgYWxsIGVsZW1lbnRzIGluIHZlY3Rvci4KICAgIGZvcihjb25zdCBhdXRvJiBwIDogY3JldykgewogICAgICAgIHN0ZDo6Y291dCA8PCBwLm5hbWUgPDwgIiBpcyAiIDw8IHAuYWdlIDw8ICIgeWVhcnMgb2xkIiA8PCBzdGQ6OmVuZGw7CiAgICB9Cn0=