2015-02-08 41 views
0

晚上好。 是的,我是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

回答

1

數組和向量不兼容。 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); 
    } 
}