#include <map>
#include <iostream>

struct coord {
    int x, y;
};

int main() {
    auto comp = [](const coord& c1, const coord& c2){
        return c1.x < c2.x || (c1.x == c2.x && c1.y < c2.y);
    };
    std::map<coord, int, decltype(comp)> m(comp);

    m.insert({ { 0, 0 }, 123 });
    m.insert({ { 1, 1 }, 234 });
    m.insert({ { 0, 1 }, 345 });
    m.insert({ { 1, 0 }, 456 });

    for (auto const &c : m)
        std::cout << c.first.x << ", " << c.first.y << ", " << c.second << std::endl;

	return 0;
}