如何在 C++ 中使用字符串作为变量名? [复制]
Posted
技术标签:
【中文标题】如何在 C++ 中使用字符串作为变量名? [复制]【英文标题】:How to use a string as a variable name in C++? [duplicate] 【发布时间】:2011-12-27 06:19:15 【问题描述】:可能重复:Convert string to variable name or variable type
c++中如何使用字符串值作为变量名
string listName = "hari";
string vectorName = "BF_vector_"+listName;
vector<string> vectorName;
vectorName.push_back("Some Value");
如何使用vectorName的字符串值("BF_vector_hari")作为vector的变量名? 提前致谢。
【问题讨论】:
你的意思是动态生成一个名字为“BF_vector_hari”的向量变量,类似于php的双$? 你……不要!即使在确实支持这一点的语言中......也要三思。 不,你认为你有,但你没有。有更好的方法来解决你的问题,不管它是什么。 @EthanSteinberg:术语本身就是重点。它表明了对 C++ 工作原理的根本误解。他想要的不能按照他的意愿来,特别是动态的变量名。您可以创建一个映射表,它是将名称映射到 objects 的对象,但它不会将它们映射到 variables。 令人惊讶的是,有多少人独立想出做这种可怕的、荒谬的事情的愿望......这让我想知道我们的教育材料是否存在根本性的失败来解释变量的真正含义。 【参考方案1】:你不能在 C++ 中。
您可以做的一件事是使用std::map<std::string, std::vector>
的形式将名称存储到矢量图。
【讨论】:
谢谢。不想让代码更复杂。【参考方案2】:你没有。
变量名是一个编译时结构。字符串的内容是一个运行时概念(字符串文字略有不同,但也不起作用)。除非您编写特定的映射层(将字符串名称映射到某个对象),否则您不能只使用字符串作为变量名称。
或者是类型名称。
【讨论】:
以上是关于如何在 C++ 中使用字符串作为变量名? [复制]的主要内容,如果未能解决你的问题,请参考以下文章