#include<map>
#include <iostream>
class Class1
{
public:
Class1(int id) : id(id) {}
int getId() const { return id; }
private:
int id;
};
int main() {
auto comp = [](const Class1& lhs, const Class1& rhs){ return lhs.getId() < rhs.getId(); };
std::map<Class1, int, decltype(comp)> c2int(comp);
Class1 c1(1), c2(0), c3(2);
c2int[c1] = 12;
c2int[c2] = 13;
c2int[c3] = 14;
for (auto const &kv : c2int)
std::cout << kv.first.getId() << ", " << kv.second << std::endl;
return 0;
}
I2luY2x1ZGU8bWFwPgojaW5jbHVkZSA8aW9zdHJlYW0+CgpjbGFzcyBDbGFzczEKewpwdWJsaWM6CiAgICBDbGFzczEoaW50IGlkKSA6IGlkKGlkKSB7fQogICAgaW50IGdldElkKCkgY29uc3QgeyByZXR1cm4gaWQ7IH0KCnByaXZhdGU6CiAgICBpbnQgaWQ7Cn07CgppbnQgbWFpbigpIHsKICAgIGF1dG8gY29tcCA9IFtdKGNvbnN0IENsYXNzMSYgbGhzLCBjb25zdCBDbGFzczEmIHJocyl7IHJldHVybiBsaHMuZ2V0SWQoKSA8IHJocy5nZXRJZCgpOyB9OwogICAgc3RkOjptYXA8Q2xhc3MxLCBpbnQsIGRlY2x0eXBlKGNvbXApPiBjMmludChjb21wKTsKCiAgICBDbGFzczEgYzEoMSksIGMyKDApLCBjMygyKTsKICAgIGMyaW50W2MxXSA9IDEyOwogICAgYzJpbnRbYzJdID0gMTM7CiAgICBjMmludFtjM10gPSAxNDsKCiAgICBmb3IgKGF1dG8gY29uc3QgJmt2IDogYzJpbnQpCiAgICAgICAgc3RkOjpjb3V0IDw8IGt2LmZpcnN0LmdldElkKCkgPDwgIiwgIiA8PCBrdi5zZWNvbmQgPDwgc3RkOjplbmRsOwoKCXJldHVybiAwOwp9