In base al riferimento C++, set :: insert deve restituire una coppia in cui l'iteratore punta all'elemento appena inserito o all'elemento esistente se tale esiste.return iterator da std :: set :: insert() è const?
ma sto avendo un problema assegnando al iteratore, in quanto questo semplice esempio mostra:
int main() {
set<int> set;
*set.insert(5).first = 5;
return 0;
}
Ho provato G ++ e Clang e né opere.
set.cc:7:24: error: read-only variable is not assignable
*set.insert(5).first = 5;
~~~~~~~~~~~~~~~~~~~~^
non riesco a trovare nulla nella documentazione che indica che l'iteratore deve deferenza a un oggetto const, e nulla nella firma tipo indicherebbe questa operazione. Qualcuno può aiutarmi a capire perché questo non funziona?
Duh. Avrei dovuto pensarci. Grazie. Nel mio esempio reale, non era un int, era un oggetto più complesso su cui volevo cambiare qualche stato. – drwowe