Zgodnie z referencją C++, set :: insert ma zwracać parę, w której iterator wskazuje nowo wstawiony element lub istniejący element, jeśli taki istnieje.return iterator ze std :: set :: insert() jest const?
ale mam problem z przypisaniem do iteracyjnej, jak to pokazuje proste przykłady:
int main() {
set<int> set;
*set.insert(5).first = 5;
return 0;
}
Próbowałem G ++ i Clang i ani prace.
set.cc:7:24: error: read-only variable is not assignable
*set.insert(5).first = 5;
~~~~~~~~~~~~~~~~~~~~^
Nie mogę znaleźć coś w dokumentacji, która wskazuje, że iterator powinny szacunek do const obiektu i nic w podpisie typu będzie to oznaczać albo. Czy ktoś może mi pomóc zrozumieć, dlaczego to nie działa?
Duh. Powinienem był o tym pomyśleć. Dzięki. W moim prawdziwym przykładzie nie było to int, jest bardziej złożonym obiektem, który chciałem zmienić na jakiś stan. – drwowe