push_back pop_back example c++ vector

c++ - pop_back - ¿Cómo se usa vector:: push_back() `con una estructura?



vector insert c++ (4)

¿Cómo puedo push_back una struct en un vector?

struct point { int x; int y; }; std::vector<point> a; a.push_back( ??? );


point foo; //initialize with whatever a.push_back(foo);


point mypoint = {0, 1}; a.push_back(mypoint);

O si está permitido, dele point un constructor, para que pueda usar un temporal:

a.push_back(point(0,1));

Algunas personas se opondrán si pones un constructor en una clase declarada con struct , y lo convierte en no POD, y quizás no controlas la definición de point . Entonces esta opción podría no estar disponible para usted. Sin embargo, puede escribir una función que proporcione la misma comodidad:

point make_point(int x, int y) { point mypoint = {x, y}; return mypoint; } a.push_back(make_point(0, 1));


point p; p.x = 1; p.y = 2; a.push_back(p);

Tenga en cuenta que, como a es un vector de puntos (no punteros), push_back creará una copia de su estructura de puntos, por lo que p puede destruirse con seguridad una vez que se sale del alcance.


struct point { int x; int y; }; vector <point> a; a.push_back( {6,7} ); a.push_back( {5,8} );

Use el soporte rizado.