std :: shared_ptr: reset () vs. arrangement

Dies ist eine grundlegende Frage, aber ich habe keinen vorherigen Beitrag darüber gefunden. Der Titel der folgenden Frage klingt wie die gleiche Frage wie meine, aber die Frage selbst stimmt nicht mit dem Titel überein:ist es besser, shared_ptr.reset oder operator =? @ zu verwend

ch bin verwirrt über den Zweck desreset() Mitgliedsfunktion vonstd::shared_ptr: Was trägt es zusätzlich zum Zuweisungsoperator bei?

Um konkret zu sein, gegeben die Definition:

auto p = std::make_shared<int>(1);

Sind die folgenden zwei Zeilen gleichwertig:

p = std::make_shared<int>(5);
p.reset(new int(5));

Was ist mit diesen hier

p = nullptr;
p.reset();

Wenn die beiden Zeilen in beiden Fällen äquivalent sind, was ist dann der Zweck vonreset()?

EDIT: Lassen Sie mich die Frage umformulieren, um ihren Punkt besser hervorzuheben. Die Frage ist: Gibt es einen Fall, in demreset() können wir etwas erreichen, das ohne es nicht so einfach zu erreichen ist?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage