使用类型<int,vector <int =“”>&gt; </int,>插入到地图中

时间:2014-02-24 17:39:11

标签: c++ vector map insert

我有这段代码:

map< int , vector< int>> testmap;
vector<int> testvector;
testvector.push_back(10);
testmap.insert(1, testvector);

这段代码给我一个错误,告诉我没有重载函数来匹配参数列表。

谁能告诉我为什么会这样?我正在尝试将矢量插入到地图中,但此方法似乎不起作用。

4 个答案:

答案 0 :(得分:5)

std::map::insert没有与您传递的参数匹配的重载。这可行:

auto p = testmap.insert(std::make_pair(1, testvector));

std::cout << std::boolalpha;
std::cout << "Did insert succeed? " << p.second << std::endl;

如果地图中没有带有键1的元素,则会成功。

答案 1 :(得分:3)

testmap.insert(1, testvector);

你可能打算做

testmap[1] = testvector;

代替。

答案 2 :(得分:2)

由于您使用的是C ++ 11(使用>> :)证明了这一点,因此您也可以使用emplace

testmap.emplace(1, testvector);

答案 3 :(得分:0)

尝试

testmap.insert({1, testvector});