晚上好。
是的,我是C和C ++领域的新手。
我应该怎么做才能解决这个问题:
int i;
vector <XPoint> originales;
originales.reserve(7);
XPoint asteroid[5];
for(k = 0; k < 7; k++){
for(i = 0; i < 5; i++){
asteroid[i].x = rand() % 20 - 100;
asteroid[i].y = rand() % 20 - 100;
}
originales.push_back(*asteroid);
}//end of first for
/*
The XPoint structure contains:
typedef struct {
short x, y;
} XPoint;
*/
当我打印时,坐标不完整。这是否意味着您无法将XPoint []数组保存在XPoint的向量内?在这种情况下,我该如何解决?
请帮忙!
最佳答案
数组和向量不兼容。您可以在push_back
上唯一的originales
是XPoint
。但是vector
已经很好地处理了这种事情-他们是为此而生的! -因此您根本不需要额外的数组:
for(k = 0; k < 7; k++){
for(i = 0; i < 5; i++){
XPoint asteroid;
asteroid.x = rand() % 20 - 100;
asteroid.y = rand() % 20 - 100;
originales.push_back(asteroid);
}
}
关于c++ - 如何管理结构类型为XPoint的 vector ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28390922/