晚上好。
是的,我是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上唯一的originalesXPoint。但是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/

10-11 16:29