如何使用字符串作为整数的名称? C++ [重复]
Posted
技术标签:
【中文标题】如何使用字符串作为整数的名称? C++ [重复]【英文标题】:How can I use a string as the name of an integer? C++ [duplicate] 【发布时间】:2018-09-02 17:13:28 【问题描述】:大家好,我是编程新手,但遇到了问题。我有一个字符串,我使用字符串的长度根据字符串的长度创建变量。我想使用一个字符串(“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;*
我怎样才能让它工作? 有没有可能?
【问题讨论】:
不要这样做。只需创建一个向量,然后将数字添加到向量中。然后您可以通过[]
使用普通号码访问每个号码。
如果您确实需要字符串值来区分并稍后返回,请考虑使用std::map<string, int>
来存储这些值。
我有一种似曾相识的奇怪感觉。你今天不是已经问过了吗?
感谢您的回答! ^^ StoryTeller 是的,我确实重新上传了它,因为它被标记为重复。但这根本没有帮助我。
你想要一个整数变量,它的名字可以像字符串一样改变?
【参考方案1】:
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;
由于您是编程新手,我认为向量可以胜任。这只是你对一组价值观的思考方式的改变。
【讨论】:
感谢您帮助我。我设法让它工作! ^^以上是关于如何使用字符串作为整数的名称? C++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章