繁体   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