我使用]创建了地图>
std::map<long,std::vector<long> > indices
[尝试插入键和向量元素时
indices.insert(std::pair<long,std::vector<long> >(0,{0,1,2}));
我遇到了以]结尾的大错误行>
C:/TDM-GCC-64/lib/gcc/x86_64-w64-mingw32/5.1.0/include/c++/bits/stl_map.h:685:9: note: template argument deduction/substitution failed: Main.cpp:44:66: note: candidate expects 2 arguments, 1 provided indices.insert(std::pair<long,std::vector<long> > (0,{0,1,2}));
如果在编译过程中我愿意
g++ Main.cpp -std=c++17
但是它编译时没有任何错误
g++ Main.cpp -std=c++11
程序在c ++ 17中是否不同?如果是,那是什么?还是我错过了什么?
我使用std :: map
indices.insert({ {0},{{0,1,2}} });
C ++ 17引入了新的重载以允许
。insert({{key},{value,args}}] >>)>语法。