STL-bitset源码解析
生活随笔
收集整理的這篇文章主要介紹了
STL-bitset源码解析
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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;
}
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的STL-bitset源码解析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: STL-String源码分析
- 下一篇: STL-hasmap源码