Я пытаюсь заполнить содержимое карты с ++ внутри области видимости цикла.
#include <set>
#include <map>
map<int, set<int> > maps;
for (int i=0; i<10; i++) {
set<int> seti; // content: a set of integers
seti.insert(i);
seti.insert(...);
maps.insert ( pair<int,set<int> >(i,seti) );
}
Вопрос в том, копирует ли maps.insert содержимое пары?Если экземпляр пары недопустим после каждой области видимости цикла, такой код должен завершиться ошибкой.
Как правильно генерировать содержимое карты (с указателем и новым экземпляром?) И как правильно очистить карту?
спасибо за любые предложения по передовому опыту.
--- UPDATE ---
map<int, set<int> >::iterator it;
int k = (*it).first;
set<int> v = (*it).second;
теперь 'v' также является копией из реального экземпляра, хранящегося вкарта?
если да, то у меня нет возможности «напрямую» обновить содержимое карты.