gpt4 book ai didi

c++ - 通过动态分配为大约 10000 个变量存储 bool 信息的内存有效方法

转载 作者:太空狗 更新时间:2023-10-29 19:49:11 25 4
gpt4 key购买 nike

我需要存储大约 10000 个变量的 bool 信息。首先我想到使用 bool 数组 arr[10000] 但它需要 40000 个字节。但是我需要以一种内存有效的方式存储这些信息。也许使用位操作?还有一件事我需要在全局范围内存储它并动态分配它。你能帮我解决这个问题吗?

最佳答案

你可以这样做:

vals = new char[(len+7)/8];
// To access
vals[i/8] & 1 << (i % 8)
// To set
vals[i/8] |= 1 << (i % 8);
// To clear
vals[i/8] &= ~(char)(1 << (i % 8));

虽然要最快,但您应该使用任何字大小的 block 。所以在 32 位计算机上:

vals = new uint32_t[(len+31)/32];
// To access
vals[i/32] & 1 << (i % 32)
// To set
vals[i/32] |= 1 << (i % 32);
// To clear
vals[i/32] &= ~(uint32_t)(1 << (i % 32));

关于c++ - 通过动态分配为大约 10000 个变量存储 bool 信息的内存有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com