2014-10-01 18 views
0

在我寫的程序中,我有幾個成員的各種結構。保存在幾個字符串中我有不同的結構名稱成員。如何使用這些字符串從我想要的成員中選擇數據?如何使用變量來幫助選擇結構的成員來利用

例子:

struct teams 
{ double x; 
    double y; 
}; 

teams cardinals = {1, 2}; 
teams pirates = {}; 
teams cubs = {}; 

team1 = "cardinals"; 

我想要做的輸出team1.x相當於但是我不知道怎麼樣。幫幫我?

+0

在你的代碼中,'team1'是'std :: string'或'char *'。你不能訪問'team'類型的'team'成員變量。 – Jason 2014-10-01 16:48:53

+0

您可能希望將團隊名稱添加到結構中(另外,爲什麼在分配整數時還要加倍)?然後把團隊放入一個容器中,比如'std :: map'(通過名稱直接訪問)或'std :: vector'(使用'find'函數)。 – crashmstr 2014-10-01 17:11:19

回答

0

C++是一種強類型語言,所以你真的無法做到這一點。有像Ruby這樣的語言可以讓你將符號轉換爲字符串,反之亦然。

正如我理解你的問題,你可能要問的是關聯名稱來選擇結構。基於這種理解,您可以創建枚舉,聲明向量或結構數組,然後使用它們

enum {CARDINALS=0, PIRATES, CUBS, MAX_SIZE}; 
struct teams 
{ double x; 
    double y; 
}; 
struct teams allTeams[MAX_SIZE+1]; 

teams[CARDINALS] = {1,2}; 

希望它有幫助!

相關問題