He estado tratando de inicializar un mapa de <ints, vector<ints> >
usando el nuevo estándar 0X, pero parece que no puedo obtener la sintaxis correcta. Me gustaría hacer un mapa con una sola entrada con llave: valor = 1: 3,4 <>Uso de un initializer_list en un mapa de vectores
#include <initializer_list>
#include <map>
#include <vector>
using namespace std;
map<int, vector<int> > A = {1,{3,4}};
....
Se muere con el siguiente error con gcc 4.4.3:
error: no matching function for call to std::map<int,std::vector<int,std::allocator<int> >,std::less<int>,std::allocator<std::pair<const int,std::vector<int,std::allocator<int> > > > >::map(<brace-enclosed initializer list>)
Editar
Siguiendo la sugerencia de la rueda dentada y la adición de la llave extra que ahora compila con la advertencia de que puede ser librado de la utilización de la bandera-init-list--fno deducir. ¿Hay algún peligro al hacerlo?
¿No te estás perdiendo un corsé? – YGL
@ YGL: gracias fijas. Aun así, no resuelve el problema original. – Hooked
En 4.4.1, el compilador sufre un ataque de nervios (error interno). Tal vez con 4.5 funciona correctamente? – ergosys