2016-10-25 1 views
0

Wenn ich vector<double> v; definiere belegt dieser Vektor aufeinanderfolgende Speicherplätze? Wenn es aufeinanderfolgende Speicherplätze belegt, was würde passieren, wenn ich diesem Vektor ein neues Element hinzufüge, während nicht genügend Speicherplätze direkt hinter dem letzten Element vorhanden sind?Beeitigt ein Vektor in C++ aufeinanderfolgende Speichersteckplätze?

+0

Ja. Es wird die Elemente neu zuweisen, wenn sie nicht in den aktuell zugewiesenen Speicherplatz passen. – wally

+0

Dies wird als zusammenhängender Speicher bezeichnet, und es gibt zwei Standardcontainer, die dies garantieren: Vektor und Array. In C++ 17 fügen sie einen Iterator mit dieser Garantie hinzu: ContiguousIterator. – jaggedSpire

+0

Diese Art von Speicher ermöglicht es Ihnen, Elemente in solchen Datenstrukturen in O (1) Komplexität (sehr schnell) abzurufen. – Spidey

Antwort