C++ bitset初始化问题
答案:4 悬赏:40
解决时间 2021-03-12 04:15
- 提问者网友:嘚啵嘚啵
- 2021-03-11 18:28
C++ bitset初始化问题
最佳答案
- 二级知识专家网友:慢性怪人
- 2021-03-11 18:47
对,所以为了解决这个问题,Boost函数库里面有一个类叫做dynamic_bitset就是干这个用的
全部回答
- 1楼网友:我住北渡口
- 2021-03-11 21:42
为什么一定要用bitset呢?可以动态调整大小,同时又对空间有优化的std:vector<bool>能否满足需求?追答
追问:bool 类型的是占一个字节吧,我要存的数据大部分为0和1,想把他们按位存,如果是字节的话就浪费空间了
追答:说了“对空间有优化”……std:vector<bool>和其它的std:vector不一样,它不是真正的容器,一般编译器会实现为按位存储的,当然由于它不是真正的容器,所以操作上有需要注意的与其它的std:vector不一样的地方……
追问:还没解决···还得问你,我用了vector<bool>,push_back了8个元素进去,为什么sizeof显示的是16个字节呢···理论上不应该是1个字节吗?我要节省空间···
追答:对vector用sizeof是什么心态,vector的元素内存是动态分配的,用sizeof获得的是指向动态分配的内存的指针而已……
追问:晕 早上提示我赶紧处理问题···然后就随便点了个 上面把回答给折叠起来没看见你这个···一时糊涂选了别人的···我能怎么给你分数不??? 要不我再开个问题 你去点一下吧···晕死···
追问:bool 类型的是占一个字节吧,我要存的数据大部分为0和1,想把他们按位存,如果是字节的话就浪费空间了
追答:说了“对空间有优化”……std:vector<bool>和其它的std:vector不一样,它不是真正的容器,一般编译器会实现为按位存储的,当然由于它不是真正的容器,所以操作上有需要注意的与其它的std:vector不一样的地方……
追问:还没解决···还得问你,我用了vector<bool>,push_back了8个元素进去,为什么sizeof显示的是16个字节呢···理论上不应该是1个字节吗?我要节省空间···
追答:对vector用sizeof是什么心态,vector的元素内存是动态分配的,用sizeof获得的是指向动态分配的内存的指针而已……
追问:晕 早上提示我赶紧处理问题···然后就随便点了个 上面把回答给折叠起来没看见你这个···一时糊涂选了别人的···我能怎么给你分数不??? 要不我再开个问题 你去点一下吧···晕死···
- 2楼网友:西风乍起
- 2021-03-11 20:27
就开大一点的空间一开始 给一个 你公式 所可能出现的最大情况
空间开大了 不要紧只是用其中一部分就行 只是有点浪费而已不过这样能解决问题
空间开大了 不要紧只是用其中一部分就行 只是有点浪费而已不过这样能解决问题
- 3楼网友:等灯
- 2021-03-11 19:17
不是这样说的。按位,最多的unsigned long才64位(64位机环境)或32位(32位机环境)下,你无论如何运算,还是用C++内建的数据类型来运算而已。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯