Entwickler-Ecke

Off Topic - C++ push_back


storestore - Mo 03.12.12 11:11
Titel: C++ push_back
Hey hey,
schön hier mal wieder zu schreiben :) Ich hoffe euch allen geht es gut? Mein Problem hat diesmal etwas mit c++ zu tun. Ich weiß es gehört eigentlich nicht in ein c#/Delphi forum, trotzdem dachte ich, dass sich einige damit auskennen würden.
Alos:
Bei "Vectotoren" kann man (Mehtode?) push_back(Variable) anhängen. Jetzt meine Frage, was bringt mir das genau?
Gehen wir dann mal aus ich haben einen "Vector":

Quelltext
1:
2:
3:
vector<int> test(10);
int a=10;
test.push_back(a);

habe ich dann im "Vector" 20 "Plätze" erstellt, oder hat es eine andere bedeutung?


Danke im voraus.

Mfg storestore


FinnO - Mo 03.12.12 11:21

Moin,

das fügt den Wert 10 an die oberste freie Stelle im Vektor ein.

Cheers,


Delete - Mo 03.12.12 11:25

Du allozierst zuerst mit dem Konstruktur 10 Elemente im Vektor, die alle initialisiert werden. D.h. dein Vektor hat nach dem Konstruktur die Länge 10. push_back fügt ein Element an der obersten freien Stelle im Array an. D.h. nach dem push_back hat dein Vector 11 Elemente.

Edit: Bei dem gewählten Konstruktor handelt es sich um eine Fill Variante. D.h. wenn du folgenden Quelltext kompilierst, dann gibt dir der Vektor zehn mal 42 aus:


C#-Quelltext
1:
2:
3:
4:
5:
std::vector< int > myIntArray( 1042 );

for ( auto it = myIntArray.begin(); it != myIntArray.end(); ++it ) {
    std::cout << *it << std::endl;
}


storestore - Mo 03.12.12 12:03

Achso, also wird push_back(); verwendet um ein weiters Element anzuhängen und in den Klammern gebe ich den Wert des hinzugefügten Element an.

Danke :)

Mfg storestore