Я пытаюсь реализовать unordered_map> с помощью unordered_map::emplace
#include <iostream>
#include <vector>
#include <unordered_map>
using namespace std;
int main ()
{
unordered_map<char,vector<int>> amap;
amap.emplace('k',(2,9));
for(auto i : amap['k']){
cout << i;
}
}
Я ожидал, что результат будет "99", потому что я построил вектор с (2,9). но фактический результат был «000000000», который emplace построил вектором как (9), 0 по умолчанию и 9 как количество целых чисел. Я еще немного поиграл с другими значениями параметров и понял, что emplace принимает только последнее значение в векторном параметре. Почему это?
Я все еще могу достичь цели, выполнив
vector<int> v(2,9);
amap.emplace('k',v);
но просто интересно, почему, и сохранить одну строку кода.