如何使用字符串作为整数的名称? 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++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从字符串C++中取出整数[重复]

将字符串元素转换为整数C++ [重复]

关于变量的C ++问题:在字符串中添加一个整数[重复]

Func<DomainObject,object> 如何将对象名称作为字符串返回 [重复]

如何用C++实现一个整数类的集合??

使用字符分隔符在 C++ 中解析字符串,但在每个解析的子字符串中保留可重复的字符作为分隔符(C++ STL)