Using an initializer_list on a map of vectors
Posted
by Hooked
on Stack Overflow
See other posts from Stack Overflow
or by Hooked
Published on 2010-05-17T20:14:17Z
Indexed on
2010/05/29
22:42 UTC
Read the original article
Hit count: 215
I've been trying to initialize a map of <ints, vector<ints> >
using the new 0X standard, but I cannot seem to get the syntax correct. I'd like to make a map with a single entry with key:value = 1:<3,4>
#include <initializer_list>
#include <map>
#include <vector>
using namespace std;
map<int, vector<int> > A = {1,{3,4}};
....
It dies with the following error using 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>)
Edit
Following the suggestion by Cogwheel and adding the extra brace it now compiles with a warning that can be gotten rid of using the -fno-deduce-init-list flag. Is there any danger in doing so?
© Stack Overflow or respective owner