2

对于我正在从事的项目,我需要为 bitset 创建自己的实现。我查看了 STL 库以了解他们如何处理此问题,并在线查看了其他一些内容。使用 char 数组似乎很标准。为什么每个人都使用 char 数组而不是整数类型是有原因的吗?

4

2 回答 2

4

仅仅因为charC++ 中的 a 是一个字节,(或者至少,C++ 标准保证它的大小小于或等于intor short),而 an 的大小int通常大于一个字节。(现在大多数机器上通常是 32 位或 4 字节。)由于单个字节是计算机可以处理的最小可寻址数据单元,因此char在处理单个位时使用 s 数组是很自然的。例如,如果您使用int,那么您会为任何不是 的倍数的位浪费大量空间sizeof(int),但是对于字节数组,您会浪费尽可能少的空间。

于 2010-11-13T19:46:00.190 回答
1

Char(通常)是微处理器可以操作的最小位单位。如果您正在创建一个使用任意位数的对象,那么使用最小单位的数组是有意义的。这样,您始终使用尽可能少的单位。

如果您需要一个非任意大小的位集,并且处理器有一个足够大的本机类型来容纳它,请使用 N 位类型。它将比数组更有效。

于 2010-11-13T19:59:32.070 回答