簡體   English   中英

在C ++中使用變量的值引用變量的名稱

[英]Using a variable's value to refer to a variable's name in C++

我有一個看起來像這樣的功能,

void Parser::executeSearchQuery(string field, 
                                string value, 
                                Data* &temp, 
                                int arraySize)
{
    for (int i = 0; i<arraySize; i++) {
        if (temp[i].name==value) {
            cout << temp[i].name << endl;
            cout << temp[i].type << endl;
            cout << temp[i].length << endl;
        }
    }
}

我希望函數在給定字段中搜索給定值。 我希望字符串“ field”是一個變量,該變量確定將哪個字段與值進行比較,但是我不確定如何做到這一點。 擁有temp [i] .field無效,name == value也無效,因為它比較字符串,而不是字符串具有的變量名稱。

我可以使用if語句,但是當我引入更多字段並對其進行擴展時,我希望有一些更靈活的方法。

所以,說我有以下數據,

temp 0 is John, 1, 5
temp 1 is Matt, 2, 7
temp 2 is Phil, 1, 6

這三個字段是名稱,類型和長度。

我希望函數將一個字段名稱帶入“字段”,並在該字段等於“值”的情況下顯示所有結果,這些結果也由用戶提交。 但是我不知道如何處理“現場”問題。

如果我理解正確,那么您將要求使用“變量變量”,例如PHP的“ $$ x”語法。 這在C ++中不可用,因為它需要知道在編譯時(而不是運行時)所指的變量。

您唯一的選擇是使用常規條件語句( ifswitch ),或將數據存儲在映射表(aka字典,關聯數組)中,而不是固定的數據結構中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM