使用变量值在C ++中引用变量的名称

时间:2014-04-28 10:51:46

标签: c++ function search

我有一个看起来像这样的功能,

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;位。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,你就要求变量&#34;,就像PHP&#34; $$ x&#34;句法。这在C ++中是不可用的,因为它需要知道在编译时你指的是什么变量,而不是运行时。

您唯一的选择是使用普通的条件语句(ifswitch),或者将数据存储在地图(也就是字典,关联数组)中,而不是固定的数据结构。