#include <unordered_set>
#include <iostream>

int main() {
    auto hash = [](const std::pair<int, int>& p){ return p.first * 31 + p.second; };
    std::unordered_set<std::pair<int, int>, decltype(hash)> u_edge_(8, hash);

    u_edge_.emplace(1, 2);
    u_edge_.emplace(3, 4);
    u_edge_.emplace(5, 6);

    for (auto const &p : u_edge_)
        std::cout << p.first << ", " << p.second << std::endl;

	return 0;
}