我有一个看起来像这样的功能,
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;
}
}
}
我希望函数在给定字段中搜索给定值。我想要字符串&#39;字段&#39;是一个变量,决定要与一个值进行比较的字段,但我不确定如何做到这一点。让temp [i] .field不起作用,name == value也不会,因为它比较字符串,而不是字符串变量的名称。
我可以使用if语句但我希望有更灵活的东西,因为当我引入更多字段并扩展它时。
所以,说我有以下数据,
temp 0 is John, 1, 5
temp 1 is Matt, 2, 7
temp 2 is Phil, 1, 6
三个字段是姓名,类型和长度。
我希望该功能将字段名称带入&#39;字段&#39;并显示字段等于&#39;值的所有结果,也由用户提交。但我不知道如何处理这个领域&#39;位。
答案 0 :(得分:3)
如果我理解正确,你就要求变量&#34;,就像PHP&#34; $$ x&#34;句法。这在C ++中是不可用的,因为它需要知道在编译时你指的是什么变量,而不是运行时。
您唯一的选择是使用普通的条件语句(if
,switch
),或者将数据存储在地图(也就是字典,关联数组)中,而不是固定的数据结构。