sách gpt4 ai đã đi

c++ - 如何将 int 用作 ints/bools 数组?

In lại 作者:搜寻专家 更新时间:2023-10-31 00:05:25 hai mươi bốn 4
mua khóa gpt4 Nike

我在制作程序时注意到我的很多 số nguyên类型变量从未超过十个。我认为这是因为 số nguyên最短为 2 个字节(如果算上 char 则为 1 个字节),所以我应该能够存储 4 个 unsigned ints在一个 short int 中的最大值为 15,我知道我可以使用 >> 单独访问每个值和 << :

short unsigned int SLWD = 11434;
S is (SLWD >> 12), L is ((SLWD << 4) >> 12),
W is ((SLWD << 8) >> 12), and D is ((SLWD << 8) >> 12)

但是,我不知道如何将它包含在类的函数中,因为任何类型的 GetVal()函数必须是 số nguyên 类型,这首先违背了隔离位的目的。

1 Câu trả lời

首先,记住 Rules of Optimization .但这在 C 或 C++ 中使用位域是可能的:

struct mystruct {
unsigned int smallint1 : 3; /* 3 bits wide, values 0 -- 7 */
signed int smallint2 : 4; /* 4 bits wide, values -8 -- 7 */
unsigned int boolean : 1; /* 1 bit wide, values 0 -- 1 */
};

值得注意的是,虽然您因不需要那么多存储空间而获得 yield ,但您也有损失,因为访问所有内容的成本变得更高,因为现在每次读取或写入都有一堆与之相关的微调机制。鉴于存储很便宜,可能不值得。

编辑:您也可以使用 vector存储 1 位 bool 值;但要小心它,因为它不像普通的 vectơ !特别是,它不提供迭代器。它完全不同,可以公平地说 vector实际上不是 vectơ . Scott Meyers 在“Effective STL”中就此主题写得非常清楚。

关于c++ - 如何将 int 用作 ints/bools 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2339027/

hai mươi bốn 4 0
Bài viết được đề xuất: c++ - 如何从 opencv 中的 RGB 图像(3 channel 图像)访问图像数据
Bài viết được đề xuất: c++ - 长双字符串
Bài viết được đề xuất: c++ - 你能解释一下这个 C++ 删除问题吗?
Bài viết được đề xuất: c# - C# 中用于从 DllImport 函数中检索引用的指针
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com