我正在计划创建一个数字类。目的是保存任意数量的数字,而不必担心会得到太多(如int或long)。但同时并不太多。例如:C++:可扩展的数字类 - bitset <1> *或unsigned char *
如果我只有真正需要1-10的数据,我不需要int(4字节),short(2字节)或甚至char(1字节)。那么为什么分配这么多? 如果我想要保存的数据需要非常大的数量(在这种情况下只有整数),像过去数十亿,我不能。 我的目标是创建一个数字类,可以像字符串一样处理这个问题,调整大小以适应数字。但在开始之前,我想知道..
bitset < 1>,bitset是一个模板类,它允许我在C++中缩小比特,非常有用,但效率高吗?,bitset < 1>会定义1比特,但是我想制作一系列它们吗? C++可以分配一个最小字节,bitset < 1>分配一个字节并提供该字节的1位?如果是这样的话,我宁愿用unsigned char *创建我的数字类。
unsigned char或BYTE保存8个字节,0到256之间的任何内容只需要一个,多个需要两个,然后是3,它将在需要时以字节间隔而不是位间隔继续扩展。
你认为哪种效率更高?如果bitset实际分配了1位,那么这些位就是这样,但我有一种感觉,即使它不可能。实际上,在32位处理器上,32位分配是最有效的,因此我会一次使用4个字节,直到4字节(32位)为止,实际上可以更有效地分配字节。
基本上我的问题是,你有什么想法?我应该如何去执行这个操作,bitset < 1>,或unsigned char(或BYTE)?
您不能分配小于一个字符的内存。 –
@OliCharlesworth是的你可以:'char x [0];' – Pubby
@Pubby:干得好! –