有没有办法用变量值的名称创建变量?
假设我们在循环中有一对由itr-> name.GetString()和itr-> value.GetString()获得的值。 name包含数据元素的名称并对值进行赋值。
E.g。 itr-> name.GetString()指向" id"和itr-> value.GetString()到786所以我想创建一个像" int id = 786"
的变量是否有廉价的技巧来实现这一目标,还是ELSE IF唯一的方法?
答案 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());