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.