#include <iostream>
#include <vector>
#include <algorithm>
class Foo
{
public:
Foo(std::string&& str_) :
str(std::move(str_))
{}
bool operator<(const Foo& other) const
{
return str < other.str;
}
std::string getString()
{
return str;
}
private:
std::string str;
};
int main() {
std::vector<Foo> v;
v.push_back(Foo("2"));
v.push_back(Foo("3"));
v.push_back(Foo("1"));
std::sort(v.begin(), v.end());
for (auto x : v)
std::cout << x.getString() << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgoKY2xhc3MgRm9vCnsKcHVibGljOgoJRm9vKHN0ZDo6c3RyaW5nJiYgc3RyXykgOgoJCXN0cihzdGQ6Om1vdmUoc3RyXykpCgl7fQoKCWJvb2wgb3BlcmF0b3I8KGNvbnN0IEZvbyYgb3RoZXIpIGNvbnN0Cgl7CgkJcmV0dXJuIHN0ciA8IG90aGVyLnN0cjsKCX0KCQoJc3RkOjpzdHJpbmcgZ2V0U3RyaW5nKCkgCgl7CgkJcmV0dXJuIHN0cjsKCX0KCQpwcml2YXRlOgoJc3RkOjpzdHJpbmcgc3RyOwp9OwoKaW50IG1haW4oKSB7CgkKCXN0ZDo6dmVjdG9yPEZvbz4gdjsKCXYucHVzaF9iYWNrKEZvbygiMiIpKTsKCXYucHVzaF9iYWNrKEZvbygiMyIpKTsKCXYucHVzaF9iYWNrKEZvbygiMSIpKTsKCQoJc3RkOjpzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSk7Cglmb3IgKGF1dG8geCA6IHYpCgkJc3RkOjpjb3V0IDw8IHguZ2V0U3RyaW5nKCkgPDwgc3RkOjplbmRsOwoJcmV0dXJuIDA7Cn0=