c++ - 将字符串转换为变量名或变量类型

标签 c++ string

是否可以通过执行以下操作将字符串转换为变量(反之亦然):

makeVariable("int", "count");

string fruit;
cin >> fruit;    // user inputs "apple"
makeVariable(fruit, "a green round object");

然后可以通过执行以下操作来访问它:

cout << apple; //a green round object

提前致谢!

最佳答案

不,这是不可能的。这种功能在 Ruby 和 Python 等脚本语言中很常见,但 C++ 的工作方式与这些语言大不相同。在 C++ 中,我们尝试在 compile time 处尽可能多地完成程序的工作。 .有时我们可以在 runtime 上做事,即使这样,优秀的 C++ 程序员也会在编译时找到一种方法来完成这项工作。

如果您知道要创建一个变量,请立即创建它:

int count;

您可能提前不知道变量的值,因此您可以将其推迟到运行时:

std::cin >> count;

如果您知道您将需要一组变量,但不知道其中有多少,那么创建一个 mapvector :

std::vector<int> counts;

请记住,变量的名称只不过是一个名称——一种供您稍后引用该变量的方式。在 C++ 中,不可能 也不在运行时推迟分配变量的名称是有用的。这样做只会让你的代码更复杂,让你的程序更慢。

关于c++ - 将字符串转换为变量名或变量类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7143120/

相关文章:

c++ - 删除函数删除哈希表中的所有节点

android - Cocos2d-x 3.14 Android崩溃

c - 这个c程序没有给出正确的输出。(将数字字符串转换为整数)

python - 比较字符串中的前几个字符

java - 替换word中的数字

ios - iOS 设备上的外语

python - 根据共性对字符串数组进行分类

c++ - 以另一种方式读取数组 2 维 C++

c# - protobuf-net 中的动态 protobuf 消息

c++ - boost asio ssl async_write 向我发送 moSTLy 乱码