bitset容器
是一个位容器
template<size_t _N>
class bitset
{
public:
typedef unsigned long _Ty;
private:
enum {_Nb=CHARA_BIT*sizeof(_Ty), _Nw=(_N-1)/_Nb};
_Ty _A[_Nw+1];
}
空间分配
如果小于4个字节,就分配4个字节,通过一个_A数组来决定。
检测位
bool test(size_t _P) const
{
if(_N<=_P)
_Xran();
return ((_A[_P/_Nb]&((_Ty)1<<_P%_Nb))!=0);
}
检测_P的位置是0,还是1

输出
friend ostream& operator<<(ostream& _O, bitset<_N>& _R){
for(int i=_N;_P>0;)
_O<<(_R.test(--_P)?'1':'0';
return _O;
}
bitset容器详解:位操作与空间优化
本文详细介绍C++中的bitset容器,探讨其模板实现、空间分配策略,以及如何利用位检测和输出功能。重点讲解了检测特定位置的0和1的方法。
2400

被折叠的 条评论
为什么被折叠?



