2013-09-16 56 views
0

初學者到C++,我有兩個數組。 1是字符串,另一個是二維數組(int)。我如何分配藝術家的分數?如何分配/相關字符串到二維Int數組在C + +

int Artistlist() 
{ 
    const int A1_SIZE = 5, A2_ROWSIZE =5, A2_COLSIZE =10; 

    string Artist[A1_SIZE]={ "Degas", "Holbien", "Monet", "Matisse", "Valesquez" }; 

    int Scores[A2_ROWSIZE][A2_COLSIZE] = 
    { 
     {5,5,6,8,4,6,8,8,8,10}, 
     {8,8,8,8,8,8,8,8,8,8}, 
     {10,10,10,10,10,10,10,10,10,10}, 
     {5,0,0,0,0,0,0,0,0,0}, 
     {5,6,8,10,4,0,0,0,0,0} 
    }; 
} 
+0

我不知道你的意思是「分配藝術家的分數」。什麼是得分?每位藝術家有10幅作品?添加一些細節到你要找的東西。解決你正在嘗試解決的問題。如果事情正在發揮作用,你希望看到什麼輸出? – John

+0

John ,.例如Scores中的第一行將被分配給Degas。等等。有5個藝術家和5個行(如果是這樣的話)。輸出應該是所有藝術家及其得分最高的藝術家和得分最高的藝術家以及獲得第二個得分的藝術家 – mani

+0

。看起來你已經分配了他們(某種),因爲你知道什麼藝術家得分是多少:「藝術家[你的藝術家]'通過'分數[你的藝術家] [9]'得分[你的藝術家] [0]'('藝術家' 0和4)。 – John

回答

1

你可以使用std :: map和std :: vector。

std::map<std::string, std::vector<int>> map; 

std::vector<int> DegasScores; 
DegasScores.push_back(5); 
DegasScores.push_back(5); 
DegasScores.push_back(6); 
DegasScores.push_back(8); 
DegasScores.push_back(4); 
DegasScores.push_back(6); 
DegasScores.push_back(8); 
DegasScores.push_back(8); 
DegasScores.push_back(10); 

map["Degas"] = DegasScores; 
0

花花公子如果陣列正確排序,我認爲你應該使用

Artist[artistnum] 
Scores[artistnum][0] 
. 
. 
. 
Scores[artistnum][9] 

約翰說。

+0

so like like Artist [0] =分數[1] [1]; – mani

+0

我的意思是藝術家[0]的分數存儲在分數[0] [0]到分數[0] [9],因爲它的順序! – shervin

+0

謝謝shervin,..什麼是easiet方式找到每個藝術家的平均值? – mani