Vektorspeicher in C ++
Ich möchte einen großen Vektor von d-dimensionalen Punkten speichern (d fest und klein: <10).
Wenn ich ein @ definiePoint
wievector<int>
, Ich denke einvector<Point>
würde an jeder Position einen Zeiger auf einen Punkt speichern.
Aber wenn Sie ein @ definierPoint
als Objekt mit fester Größe wie:std::tuple<int,int,...,int>
oderstd::array<int, d>
, speichert das Programm alle Punkte im zusammenhängenden Speicher oder bleibt die zusätzliche Indirektionsebene erhalten?
Wenn die Antwort lautet, dass Arrays die zusätzliche Indirektion vermeiden, kann dies einen großen Einfluss auf die Leistung (Cache-Exploit-Lokalität) beim Scannen des @ -Systems habevector<Point>
?