Ich habe einen Vektor shared_ptrs wie folgt.Ersetzen shared_ptr Elemente in Std :: Vektor
std::vector<std::shared_ptr<SharedThing>> things;
Lassen Sie uns jetzt sagen, dass ich eine Reihe von shared_ptrs auf den Vektor schieben und jedes Element hat nun einen Referenzzähler von 1.
Als ich eines dieser Elemente mit einem neuen Shared_ptr ersetzen muss ich das wollen alt shared_ptr, um den Gültigkeitsbereich zu verlassen. Wird dies durch regelmäßige Elementzuweisungen erreicht oder wird nur der Inhalt von shared_ptr kopiert. Zum Beispiel:
things.at(0) = new_shared_ptr;
dekrementiert diese den Referenzzähler von things.at (0) und der Anzahl der new_shared_ptr erhöhen?
Ja, s Debugger verwenden, um dies zu beweisen. –
http://en.cppreference.com/w/cpp/memory/shared_ptr/operator%3D – GManNickG