>>634
pairが初期化子リストによるコンストラクタを持たないから

c++ - emplace_back not working with std::vector<std::map<int, int>> - Stack Overflow
https://stackoverflow.com/questions/33207232/emplace-back-not-working-with-stdvectorstdmapint-int?answertab=votes#tab-top

似たような質問があって、mapだと初期化子リストのコンストラクタがあるから、initializer_listを使って初期化出来てる

この箇所あたりがそれ
https://cpprefjp.github.io/reference/map/map/op_constructor.html

map(initializer_list<value_type> init,
const Allocator& alloc); // (11) C++14 から

https://cpprefjp.github.io/reference/utility/pair/op_constructor.html
pairのコンストラクタにはinitializer_listは出てこない