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?
Правильна ли последняя строка?Если нет, то есть ли простой способ добиться этого?
Самый простой способ сделать это будет выглядеть так:
m[1] = n;
Но это перезапишет все, что было ранее вставлено в m[1].
m[1]
Чтобы добавить к ранее вставленным элементам,Вы можете использовать диапазон перегрузки insert
insert
m[1].insert(n.begin(), n.end());
Правильна ли последняя строка?
Нет.То, что вы хотите, должно быть вставка элементов из другого std::set, вы могли бы
std::set
m[1].insert(n.begin(), n.end()); // insert all the elements of n into m[1]