Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何创建#定义值的向量?_C++_Vector_Undefined - Fatal编程技术网

C++ 如何创建#定义值的向量?

C++ 如何创建#定义值的向量?,c++,vector,undefined,C++,Vector,Undefined,我有一些定义值,例如: #define DEF_1 0x0010 #define DEF_2 1001 #define DEF_3 3702 #define DEF_4 32772 我想将这些值保留在向量或数组中,但不幸的是,我不知道将来如何使用它们(作为什么类型),所以不确定它应该是什么类型的向量?正如你所看到的,甚至有一个十六进制 所以我想我可以做一个std::vector。但以后每次我需要使用它时,我都需要将它转换为我需要的类型 难道没有更简单的方法吗?是否有任何通用类型允许我使用数组成

我有一些定义值,例如:

#define DEF_1 0x0010
#define DEF_2 1001
#define DEF_3 3702
#define DEF_4 32772
我想将这些值保留在向量或数组中,但不幸的是,我不知道将来如何使用它们(作为什么类型),所以不确定它应该是什么类型的向量?正如你所看到的,甚至有一个十六进制

所以我想我可以做一个
std::vector
。但以后每次我需要使用它时,我都需要将它转换为我需要的类型

难道没有更简单的方法吗?是否有任何通用类型允许我使用数组成员,因为它们是
#定义的


感谢您的帮助。

没有通用类型可以容纳您可以定义的任何内容。让我举几个例子:

#define LESS <
预处理器处理原始令牌。在C++代码> {<代码> < /P>中,您不希望看到C++类型。
结论是,您必须选择一种适合您的类型,然后让编译器检查您定义的宏是否可以解释为该类型的有效表达式。如果不能,编译器会抱怨。

这种构造的典型用例是什么?
define
没有任何类型。预处理器只需读取一个nd会逐字地将值粘贴到以后使用的任何地方。编译器会担心它是否有意义。为什么不使用
enum
?@pajczur我不确定为什么以后需要定义值,但简单的整数值将是最好的解决方案。您可以同时使用
定义
s(坏)和enum(更好)。但您有责任防止任何冲突(例如,如果有人定义了两个具有相同值的不同宏…),您列出的所有值都是整数。因此,请使用足够大的整数类型,以容纳您可能要使用的最大值。
0x0010
int
#define FOO {