[C++] Containers en structs

Status
Niet open voor verdere reacties.

VBMichael

Gebruiker
Lid geworden
16 jan 2010
Berichten
32
Ik zit met een volgende vraag :

[CPP]
#include <queue>
#include <vector>
#include <iostream>

using namespace std;

struct punt {
int x, y;
};

int main() {
punt p;
p.x = 1;
p.y = 1;

vector<punt> v;
queue<punt> q;

v.push_back(p);
q.push(p);

//hoe dikwijls vindt je ( op dit moment ) het punt met coo ( 1,1 ) terug in het geheugen ?

p.x+=10;
p.y+=20;


//hoe dikwijls vindt je ( op dit moment ) het punt met coo ( 11,21 ) terug in het geheugen ?

return 0;
}
[/CPP]

Vraag 1 :

Klopt dit dat dit 3 is ? of is dit 1 en wordt er van uit de vector en de queue enkel een verwijzing gemaakt naar het punt ?


Vraag 2 :

Als je waarden nu aanpast waar wordt dit dan allemaal aangepast in het geheugen ?
 
Laatst bewerkt:
Ik weet het antwoord niet, maar als je na regel 24 en 25 de waardes van de opgeslagen punten in v en q laat tonen kom je er zelf achter.
 
http://www.cplusplus.com/reference/stl/vector/push_back/ zegt:
Adds a new element at the end of the vector, after its current last element. The content of this new element is initialized to a copy of x.

Als je dus het punt p in de vector/queue push't wordt er een kopie gemaakt van p en dat wordt in de vector/queue gezet.
Wanneer die kopieën al gemaakt zijn en je verandert p, veranderen de kopieën dus niet.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan