【发布时间】:2016-03-07 01:27:19
【问题描述】:
我对 C++ 还很陌生,我一直主要使用 python。我正在尝试检查存储在我正在处理的对象中的值的变量类型。我记得在 Python 中有一个命令 isinstance,我可以将它用作运行某些命令的条件,例如如果下一个值是字符串,则执行 A,如果是 int,则执行 B。
有没有办法快速检查 C++ 中变量的数据类型是什么?
例子:
在 python 中,我有一个带有数学运算的数组,字段中的每个字符
[3,"+",2]
当我读取数组时,我会使用 isinstance 命令将整数与字符串分开
if isinstance(list[0],int):
aux1.append(list[0])
list=list[1:]
else:
if isinstance(lista[0],str):
aux2.append(list[0
list=list[1:]
现在在 C++ 中我需要做一些类似的事情,但是这次每个字符都在链表的一个节点中,我需要将它们、链表中的整数和另一个链表中的字符串分开
【问题讨论】:
-
原版 C++ 中不存在。与 python 相比,c++ 是一种强类型语言。
-
是的,我知道 C++ 是一个完全不同的级别,只是我有一个作业,我需要根据我正在评估的变量是 int 还是采取不同的行动方案一个字符串
-
我还想补充一点,尽管有语言,这通常是一种“代码味道”(当然有一些合法的用例)
-
问题是,我从 txt 文件中获取操作,例如 3+2,然后我正在创建一个链表来存储该操作,txt 文件中的每个项目都被存储作为一个对象,所以列表最终是这样的:->3->+->2。然后我必须把它分开,一个列表中的数字,另一个列表中的字符。所以我必须将每个值作为字符串检查,但我仍然需要评估字符串是否包含数字或 int,以便我可以将数字与字符分开
-
@JojOatXGME 您所描述的是“静态类型”(这也是 OP 遇到的问题)。 “强类型”意味着值具有单一的固定类型。这种类型不需要在编译时知道。 lisp 就是这种语言(强大但动态的类型)的一个例子。
标签: c++ types isinstance