я могу вставить набор в карту со значением set в C ++? - PullRequest
0 голосов
/ 12 октября 2018
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 голосов
/ 12 октября 2018

Самый простой способ сделать это будет выглядеть так:

m[1] = n;

Но это перезапишет все, что было ранее вставлено в m[1].

Чтобы добавить к ранее вставленным элементам,Вы можете использовать диапазон перегрузки insert

m[1].insert(n.begin(), n.end()); 
0 голосов
/ 12 октября 2018

Правильна ли последняя строка?

Нет.То, что вы хотите, должно быть вставка элементов из другого std::set, вы могли бы

m[1].insert(n.begin(), n.end()); // insert all the elements of n into m[1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...