变量值的变量名称

时间:2017-03-18 07:55:10

标签: c++

有没有办法用变量值的名称创建变量?

假设我们在循环中有一对由itr-> name.GetString()和itr-> value.GetString()获得的值。 name包含数据元素的名称并对值进行赋值。

E.g。 itr-> name.GetString()指向" id"和itr-> value.GetString()到786所以我想创建一个像" int id = 786"

的变量

是否有廉价的技巧来实现这一目标,还是ELSE IF唯一的方法?

2 个答案:

答案 0 :(得分:0)

根据你的例子

  

E.g。 itr-> name.GetString()指向“id”而itr-> value.GetString()指向786所以我想创建一个像“int id = 786”

这样的变量

无法在运行时命名变量名,但有一种解决方法。

struct test
{
    string name;
    int value;
}

int main()
{
    test var;
    var.name = itr->name.GetString();
    var.value = itr->value.GetToInt32(); //Convert string to integer first
    return 0;
}

你明白了

答案 1 :(得分:0)

您能获得的最接近的结果可能是使用std::map<std::string, int> m;

然后您可以做类似的事情

m[itr->name.GetString()] = std::stoi(itr->value.GetString());