是否有任何C++容器可以存储2种(或更多)类型的值,例如int和chars?我想做一个二十一点游戏.甲板必须包括整数和字符.我不想用数字来初始化它(所以不要说任何事情!).我是一个非常初学的程序员,所以不要太复杂.
我假设您需要一个能够存储整数或字符的容器.
首先,看看Boost中的 boost::any数据类型,这可能会有所帮助.然后,您可以创建实例容器.boost::any
如果您不想使用boost或看起来有点矫枉过正,请使用union如下:
typedef struct {
char type;
union {
char character;
int integer;
};
} my_struct;
Run Code Online (Sandbox Code Playgroud)
然后,union中character的integer字段和字段的内容占用相同的内存插槽.(好吧,integer因为字符通常只有一个字节,所以使用更多的插槽).然后由你来设置type结构的字段,比如说,'c'如果你存储一个字符,比如'i'存储一个整数,然后使用character或者integer字段访问结构的内容,具体取决于type.
最后,还有Qt 的QVariant数据类型,其工作方式与上述第二种方法类似.