如何使用字符串作为整数名称? C ++

时间:2018-09-02 17:13:28

标签: c++ string int

大家好,我是编程新手,遇到了一个问题。我有一个字符串,并且使用字符串的长度根据字符串的长度创建变量。我想使用一个字符串(“ usagetxt_whl_str”)作为我的整数的名称。每次循环运行时,都应创建一个名称不同的新变量。例如:1_var,2_var等

QString usagetxt = "example"
int usagetxt_len = usagetxt.length();
int usagetxt_whl = 0;
QString usagetxt_whl_str = QString::number(usagetxt_whl);
while (usagetxt_whl != usagetxt_len){
usagetxt_whl = usagetxt_whl + 1;
**here im trying to create my var**int usagetxt_whl_str + "_var" = 0;* }

我该如何使用它? 甚至有可能吗?

1 个答案:

答案 0 :(得分:3)

C ++是一种编译语言。因此,您无法在运行时创建变量名。

但是,有多种选择可以解决动态数量的“变量”(实际上是值)的需求。第一个是使用 vector 。在这里,您将创建一个包含usagetxt_len整数的向量:

std::vector<int> myvars(usagetxt_len); 

然后您可以使用传统的索引运算符访问以下每个整数:

myvars[i] = i;

由于索引是数字的(当然从0开始),因此可以轻松地循环处理它们。

动态“变量”的另一种方法是基于字符串。然后,您可以在字符串中定义一个名称,并访问变量:

std::map<string, int> myvalues; 

然后您可以访问与字符串关联的特定值:

myvalues["4_var"]=0;  
myvalues["5_var"]=myvalues["4_var"]+3; 

由于您是编程的新手,所以我认为向量可以胜任。这只是您对一组价值观的思考方式的改变。