1
я ниже образец кодаошибка времени компиляции при использовании unordered_map
// unordered_map::find
#include <iostream>
#include <string>
#include <unordered_map>
int main()
{
std::unordered_map<std::string,double> mymap = {
{"mom",5.4},
{"dad",6.1},
{"bro",5.9} };
std::string input;
std::cout << "who? ";
getline (std::cin,input);
std::unordered_map<std::string,double>::const_iterator got = mymap.find (input);
if (got == mymap.end())
std::cout << "not found";
else
std::cout << got->first << " is " << got->second;
std::cout << std::endl;
return 0;
Когда я пытаюсь скомпилировать его с VS 2010 на Windows 7 я получаю ошибку компиляции времени (хотя это выглядит хорошо для меня)
1>\testing.cpp(13): error C2552: 'mymap' : non-aggregates cannot be initialized with initializer list
1> 'std::tr1::unordered_map<_Kty,_Ty>' : Types with a base are not aggregate
1> with
1> [
1> _Kty=std::string,
1> _Ty=double
1> ]
1>\testing.cpp(14): error C2078: too many initializers
1>\testing.cpp(15): fatal error C1903: unable to recover from previous error(s); stopping compilation
Обратите внимание, что на данный момент ни одна версия VC не имеет конструкторов списка инициализаторов библиотеки. – chris
@chris: Спасибо, что указали это –