我可以将集合插入地图,并将集合作为C ++中的值吗?

时间:2018-10-12 02:28:16

标签: c++ stl set

map<int, set<int>> m;
set<int> n;
m[1].insert(3);
n.insert(3);
n.insert(4);
m[1].insert(n);   //can I do this?

最后一行正确吗?如果没有,有什么简单的方法可以实现?

2 个答案:

答案 0 :(得分:2)

  

最后一行正确吗?

不。您想要的应该是来自另一个std::set的{​​{3}}个元素,您可以

m[1].insert(n.begin(), n.end()); // insert all the elements of n into m[1]

答案 1 :(得分:0)

最简单的方法如下:

m[1] = n;

但这将覆盖先前插入m[1]中的内容。

要添加到先前插入的元素中,可以使用insert

的范围重载
m[1].insert(n.begin(), n.end());