Я думаю, что вы можете просто использовать своп - например,
my_map["123"].swap(my_set)
при условии забивания my_set
не имеет значения для вас. Это поменяет предыдущее содержимое my_map["123"]
на my_set
, и это быстро.
Оператор индексирования [] возвращает ссылку на содержащийся set
- поэтому вы можете манипулировать им так же, как и любой другой переменной. Если вы хотите добавить / удалить отдельные значения, вы можете просто использовать insert()
или erase()
методы - например. my_map["123"].insert(123)
.
Копирование фактически происходит, когда вы назначаете новый набор на карту - например,
my_map["123"]=my_set
создаст копию my_set
. Если вам не нужно использовать значение my_set
позже, вы можете использовать метод swap()
, который будет просто перетасовывать указатели из двух наборов. Однако my_set
будет содержать содержимое предыдущего my_map["123"]
.