STL-Vektor: resize() und assign()
Dass ein Schüler std::vector<double> v
und int n
, was ist der Unterschied zwischen der Verwendung der folgenden, auf dieser vector
, die nicht initialisiert:
v.assign(n, 0.0);
oder
v.resize(n, 0.0);
InformationsquelleAutor Oleg Shirokikh | 2013-10-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, durch nicht initialisiert, meinst du, es ist standardmäßig initialisiert, ich.e, die einen leeren Vektor, dann
und
beide ändert die Größe des Vektors zu
n
und alle Elemente zu0.0
. Beachten Sie, dass für nicht-leeren Vektoren, Sie sind in der Regel nicht die gleichen,resize()
legt nur die neuen Elemente zu0.0
.InformationsquelleAutor Yu Hao
assign
legt die Größe zun
und alle element-Werte auf 0,0, in der Erwägung, dassresize
legt die Größe zun
und nur neue element-Werte auf 0,0.Wenn
v
leer ist vorher, Sie sind die gleichen, aberassign
ist wohl klarer.InformationsquelleAutor Potatoswatter
Zuweisen bedeutet das ersetzen eines Vektors mit neuen Eigenschaften ( Größe und Elemente)
Reszie bedeutet, halten die alten Daten und die Erweiterung der neuen vector mit neuen Elementen in diesem Fall die neue Größe ist größer als die alte. sonst schrumpfen Sie die Größe und die Beseitigung der extra.
Führen Sie den folgenden code zweimal. Eine für zuweisen, die zweite für die Größe( nur die Auskommentierung der erste).
Link-nur die Antworten sind nicht gute Antworten. Sie müssen zum Kontext für die links. Es wird gelöscht, wenn Sie nicht verbessern Sie Ihre Antwort.
Viel besser. Es ist ein bisschen verbose immer noch; die anderen Antworten sind klarer aufgrund dessen, dass Sie kürzer ist.
manchmal brauchen wir, um ein Beispiel zu sehen. Ich lese eine Dokumentation, aber ich habe code, um zu sehen, was genau Los ist. Mein code zeigt klar und deutlich, was ist der Unterschied. Dank keiner Weise.
InformationsquelleAutor CroCo