大家好,我是编程新手,遇到了一个问题。我有一个字符串,并且使用字符串的长度根据字符串的长度创建变量。我想使用一个字符串(“ 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;* }
我该如何使用它? 甚至有可能吗?
答案 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;
由于您是编程的新手,所以我认为向量可以胜任。这只是您对一组价值观的思考方式的改变。