[英]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 ++中不可用,因為它需要知道在編譯時(而不是運行時)所指的變量。
您唯一的選擇是使用常規條件語句( if
, switch
),或將數據存儲在映射表(aka字典,關聯數組)中,而不是固定的數據結構中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.