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.