Я пытаюсь реализовать 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);
, но просто удивляясь почему, и сохранив одну строку кода.