如何管理结构类型XPoint的向量?

问题描述:

晚上好。 是的,我是C和C++这个世界的新手。 我应该怎么做来解决这个问题:如何管理结构类型XPoint的向量?

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 []数组?在那种情况下,我该如何解决它? 请帮忙!

+0

你似乎在填充5个物品的数组,以便只将这些物品中的一个**放入你的矢量中。你需要这5个物品阵列吗? – Galik 2015-02-08 05:34:28

+0

对加利克:是的,我犯了一个错误。我需要五对坐标,不仅是第一对。巴里:谢谢。我不知道'矢量'和'数组'之间的关系'''我会看看我能做些什么 – 2015-02-10 23:13:51

数组和向量不兼容。 originales上唯一可以push_backXPoint。但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); 
    } 
}