#include <map>
#include <iostream>
struct Node {
int a;
int b;
};
int main() {
Node node{ 2, 3 };
auto comp = [](const Node& n1, const Node& n2) {
return n1.a < n2.a || (n1.a == n2.a && n1.b < n2.b);
};
std::map<Node, int, decltype(comp)> bb(comp);
bb[node] = 1;
for (auto const &kv : bb)
std::cout << kv.first.a << ", " << kv.first.b << ": " << kv.second << std::endl;
return 0;
}
I2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IE5vZGUgewogICAgaW50IGE7CiAgICBpbnQgYjsKfTsKCmludCBtYWluKCkgewogICAgTm9kZSBub2RleyAyLCAzIH07CgogICAgYXV0byBjb21wID0gW10oY29uc3QgTm9kZSYgbjEsIGNvbnN0IE5vZGUmIG4yKSB7CiAgICAgICAgcmV0dXJuIG4xLmEgPCBuMi5hIHx8IChuMS5hID09IG4yLmEgJiYgbjEuYiA8IG4yLmIpOwogICAgfTsKICAgIHN0ZDo6bWFwPE5vZGUsIGludCwgZGVjbHR5cGUoY29tcCk+IGJiKGNvbXApOwogICAgYmJbbm9kZV0gPSAxOwoKICAgIGZvciAoYXV0byBjb25zdCAma3YgOiBiYikKICAgICAgICBzdGQ6OmNvdXQgPDwga3YuZmlyc3QuYSA8PCAiLCAiIDw8IGt2LmZpcnN0LmIgPDwgIjogIiA8PCBrdi5zZWNvbmQgPDwgc3RkOjplbmRsOwoKICAgIHJldHVybiAwOwp9