C++ 如何在C++;?
可能重复:C++ 如何在C++;?,c++,C++,可能重复: 如何在c中使用字符串值作为变量名++ string listName = "hari"; string vectorName = "BF_vector_"+listName; vector<string> vectorName; vectorName.push_back("Some Value"); string listName=“hari”; 字符串vectorName=“BF_vector”+列表名; 矢量名称; vectorName.push_back(“某
如何在c中使用字符串值作为变量名++
string listName = "hari";
string vectorName = "BF_vector_"+listName;
vector<string> vectorName;
vectorName.push_back("Some Value");
string listName=“hari”;
字符串vectorName=“BF_vector”+列表名;
矢量名称;
vectorName.push_back(“某个值”);
如何使用vectorName的字符串值(“BF_vector_hari”)作为vector的变量名。?
谢谢。 你不能在C++中。
您可以做的一件事是使用std::map
的形式将名称存储到向量映射。您不需要
变量名是编译时构造。字符串的内容是一个运行时概念(字符串文本略有不同,但它们也不起作用)。除非编写特定的映射层(将字符串名称映射到某个对象),否则不能仅将字符串用作变量名
或者是一个类型名。您的意思是动态生成一个名为“BF_vector_hari”的向量变量,类似于php的double$?您。。。不要!即使在支持这一点的语言中。。。三思而后行。不,你认为你有,但你没有。有更好的方法来解决你的问题,不管是什么。@EthanSteinberg:术语本身就是重点。这说明C++是如何工作的一个基本误解。他想要的东西不能按他想要的那样做,特别是使用动态变量名。你可以创建一个映射表,这是一个将名称映射到对象的对象,但它不会将它们映射到变量。令人惊讶的是,有多少人独立地想到要做这件可怕、荒谬的事情。。。这让我想知道,在我们的教材中,是否有一些根本性的错误,无法解释变量到底是什么。谢谢。我不想让代码变得更复杂。