亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? bitset

?? ISO_C++:C++_STL開發(fā)文檔
??
?? 第 1 頁 / 共 3 頁
字號:
/* * Copyright (c) 1998 * Silicon Graphics Computer Systems, Inc. * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation.  Silicon Graphics makes no * representations about the suitability of this software for any * purpose.  It is provided "as is" without express or implied warranty. */ #ifndef __SGI_STL_BITSET#define __SGI_STL_BITSET// A bitset of size N has N % (sizeof(unsigned long) * CHAR_BIT) unused // bits.  (They are the high- order bits in the highest word.)  It is// a class invariant of class bitset<> that those unused bits are// always zero.// Most of the actual code isn't contained in bitset<> itself, but in the // base class _Base_bitset.  The base class works with whole words, not with// individual bits.  This allows us to specialize _Base_bitset for the// important special case where the bitset is only a single word.// The C++ standard does not define the precise semantics of operator[].// In this implementation the const version of operator[] is equivalent// to test(), except that it does no range checking.  The non-const version// returns a reference to a bit, again without doing any range checking.#include <stddef.h>     // for size_t#include <string.h>     // for memset#include <string>#include <stdexcept>    // for invalid_argument, out_of_range, overflow_error#ifdef __STL_USE_NEW_IOSTREAMS #include <iostream>#else#include <iostream.h>   // for istream, ostream#endif#define __BITS_PER_WORD (CHAR_BIT*sizeof(unsigned long))#define __BITSET_WORDS(__n) \ ((__n) < 1 ? 1 : ((__n) + __BITS_PER_WORD - 1)/__BITS_PER_WORD)__STL_BEGIN_NAMESPACE#if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)#pragma set woff 1209#endif// structure to aid in counting bitstemplate<bool __dummy> struct _Bit_count {  static unsigned char _S_bit_count[256];};// Mapping from 8 bit unsigned integers to the index of the first one// bit:template<bool __dummy> struct _First_one {  static unsigned char _S_first_one[256];};//// Base class: general case.//template<size_t _Nw>struct _Base_bitset {  typedef unsigned long _WordT;  _WordT _M_w[_Nw];                // 0 is the least significant word.  _Base_bitset( void ) { _M_do_reset(); }  _Base_bitset(unsigned long __val) {    _M_do_reset();    _M_w[0] = __val;  }  static size_t _S_whichword( size_t __pos )    { return __pos / __BITS_PER_WORD; }  static size_t _S_whichbyte( size_t __pos )    { return (__pos % __BITS_PER_WORD) / CHAR_BIT; }  static size_t _S_whichbit( size_t __pos )    { return __pos % __BITS_PER_WORD; }  static _WordT _S_maskbit( size_t __pos )    { return (static_cast<_WordT>(1)) << _S_whichbit(__pos); }  _WordT& _M_getword(size_t __pos)       { return _M_w[_S_whichword(__pos)]; }  _WordT  _M_getword(size_t __pos) const { return _M_w[_S_whichword(__pos)]; }  _WordT& _M_hiword()       { return _M_w[_Nw - 1]; }  _WordT  _M_hiword() const { return _M_w[_Nw - 1]; }  void _M_do_and(const _Base_bitset<_Nw>& __x) {    for ( size_t __i = 0; __i < _Nw; __i++ ) {      _M_w[__i] &= __x._M_w[__i];    }  }  void _M_do_or(const _Base_bitset<_Nw>& __x) {    for ( size_t __i = 0; __i < _Nw; __i++ ) {      _M_w[__i] |= __x._M_w[__i];    }  }  void _M_do_xor(const _Base_bitset<_Nw>& __x) {    for ( size_t __i = 0; __i < _Nw; __i++ ) {      _M_w[__i] ^= __x._M_w[__i];    }  }  void _M_do_left_shift(size_t __shift);  void _M_do_right_shift(size_t __shift);  void _M_do_flip() {    for ( size_t __i = 0; __i < _Nw; __i++ ) {      _M_w[__i] = ~_M_w[__i];    }  }  void _M_do_set() {    for ( size_t __i = 0; __i < _Nw; __i++ ) {      _M_w[__i] = ~static_cast<_WordT>(0);    }  }  void _M_do_reset() { memset(_M_w, 0, _Nw * sizeof(_WordT)); }  bool _M_is_equal(const _Base_bitset<_Nw>& __x) const {    for (size_t __i = 0; __i < _Nw; ++__i) {      if (_M_w[__i] != __x._M_w[__i])        return false;    }    return true;  }  bool _M_is_any() const {    for ( size_t __i = 0; __i < _Nw; __i++ ) {      if ( _M_w[__i] != static_cast<_WordT>(0) )        return true;    }    return false;  }  size_t _M_do_count() const {    size_t __result = 0;    const unsigned char* __byte_ptr = (const unsigned char*)_M_w;    const unsigned char* __end_ptr = (const unsigned char*)(_M_w+_Nw);    while ( __byte_ptr < __end_ptr ) {      __result += _Bit_count<true>::_S_bit_count[*__byte_ptr];      __byte_ptr++;    }    return __result;  }  unsigned long _M_do_to_ulong() const;   // find first "on" bit  size_t _M_do_find_first(size_t __not_found) const;  // find the next "on" bit that follows "prev"  size_t _M_do_find_next(size_t __prev, size_t __not_found) const;};//// Definitions of non-inline functions from _Base_bitset.// template<size_t _Nw>void _Base_bitset<_Nw>::_M_do_left_shift(size_t __shift) {  if (__shift != 0) {    const size_t __wshift = __shift / __BITS_PER_WORD;    const size_t __offset = __shift % __BITS_PER_WORD;    if (__offset == 0)      for (size_t __n = _Nw - 1; __n >= __wshift; --__n)        _M_w[__n] = _M_w[__n - __wshift];    else {      const size_t __sub_offset = __BITS_PER_WORD - __offset;      for (size_t __n = _Nw - 1; __n > __wshift; --__n)        _M_w[__n] = (_M_w[__n - __wshift] << __offset) |                     (_M_w[__n - __wshift - 1] >> __sub_offset);      _M_w[__wshift] = _M_w[0] << __offset;    }    fill(_M_w + 0, _M_w + __wshift, static_cast<_WordT>(0));  }}template<size_t _Nw>void _Base_bitset<_Nw>::_M_do_right_shift(size_t __shift) {  if (__shift != 0) {    const size_t __wshift = __shift / __BITS_PER_WORD;    const size_t __offset = __shift % __BITS_PER_WORD;    const size_t __limit = _Nw - __wshift - 1;    if (__offset == 0)      for (size_t __n = 0; __n <= __limit; ++__n)        _M_w[__n] = _M_w[__n + __wshift];    else {      const size_t __sub_offset = __BITS_PER_WORD - __offset;      for (size_t __n = 0; __n < __limit; ++__n)        _M_w[__n] = (_M_w[__n + __wshift] >> __offset) |                    (_M_w[__n + __wshift + 1] << __sub_offset);      _M_w[__limit] = _M_w[_Nw-1] >> __offset;    }    fill(_M_w + __limit + 1, _M_w + _Nw, static_cast<_WordT>(0));  }}template<size_t _Nw>unsigned long _Base_bitset<_Nw>::_M_do_to_ulong() const{  for (size_t __i = 1; __i < _Nw; ++__i)     if (_M_w[__i])       __STL_THROW(overflow_error("bitset"));    return _M_w[0];}template<size_t _Nw>size_t _Base_bitset<_Nw>::_M_do_find_first(size_t __not_found) const {  for ( size_t __i = 0; __i < _Nw; __i++ ) {    _WordT __thisword = _M_w[__i];    if ( __thisword != static_cast<_WordT>(0) ) {      // find byte within word      for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) {        unsigned char __this_byte          = static_cast<unsigned char>(__thisword & (~(unsigned char)0));        if ( __this_byte )          return __i*__BITS_PER_WORD + __j*CHAR_BIT +            _First_one<true>::_S_first_one[__this_byte];        __thisword >>= CHAR_BIT;      }    }  }  // not found, so return an indication of failure.  return __not_found;}template<size_t _Nw>size_t_Base_bitset<_Nw>::_M_do_find_next(size_t __prev, size_t __not_found) const{  // make bound inclusive  ++__prev;  // check out of bounds  if ( __prev >= _Nw * __BITS_PER_WORD )    return __not_found;    // search first word  size_t __i = _S_whichword(__prev);  _WordT __thisword = _M_w[__i];    // mask off bits below bound  __thisword &= (~static_cast<_WordT>(0)) << _S_whichbit(__prev);  if ( __thisword != static_cast<_WordT>(0) ) {    // find byte within word    // get first byte into place    __thisword >>= _S_whichbyte(__prev) * CHAR_BIT;    for ( size_t __j = _S_whichbyte(__prev); __j < sizeof(_WordT); __j++ ) {      unsigned char __this_byte        = static_cast<unsigned char>(__thisword & (~(unsigned char)0));      if ( __this_byte )        return __i*__BITS_PER_WORD + __j*CHAR_BIT +          _First_one<true>::_S_first_one[__this_byte];      __thisword >>= CHAR_BIT;    }  }  // check subsequent words  __i++;  for ( ; __i < _Nw; __i++ ) {    _WordT __thisword = _M_w[__i];    if ( __thisword != static_cast<_WordT>(0) ) {      // find byte within word      for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) {        unsigned char __this_byte          = static_cast<unsigned char>(__thisword & (~(unsigned char)0));        if ( __this_byte )          return __i*__BITS_PER_WORD + __j*CHAR_BIT +            _First_one<true>::_S_first_one[__this_byte];        __thisword >>= CHAR_BIT;      }    }  }  // not found, so return an indication of failure.  return __not_found;} // end _M_do_find_next// ------------------------------------------------------------//// Base class: specialization for a single word.//__STL_TEMPLATE_NULL struct _Base_bitset<1> {  typedef unsigned long _WordT;  _WordT _M_w;  _Base_bitset( void ) : _M_w(0) {}  _Base_bitset(unsigned long __val) : _M_w(__val) {}  static size_t _S_whichword( size_t __pos )    { return __pos / __BITS_PER_WORD; }  static size_t _S_whichbyte( size_t __pos )    { return (__pos % __BITS_PER_WORD) / CHAR_BIT; }  static size_t _S_whichbit( size_t __pos )    {  return __pos % __BITS_PER_WORD; }  static _WordT _S_maskbit( size_t __pos )    { return (static_cast<_WordT>(1)) << _S_whichbit(__pos); }  _WordT& _M_getword(size_t)       { return _M_w; }  _WordT  _M_getword(size_t) const { return _M_w; }  _WordT& _M_hiword()       { return _M_w; }  _WordT  _M_hiword() const { return _M_w; }  void _M_do_and(const _Base_bitset<1>& __x) { _M_w &= __x._M_w; }  void _M_do_or(const _Base_bitset<1>& __x)  { _M_w |= __x._M_w; }  void _M_do_xor(const _Base_bitset<1>& __x) { _M_w ^= __x._M_w; }  void _M_do_left_shift(size_t __shift)     { _M_w <<= __shift; }  void _M_do_right_shift(size_t __shift)    { _M_w >>= __shift; }  void _M_do_flip()                       { _M_w = ~_M_w; }  void _M_do_set()                        { _M_w = ~static_cast<_WordT>(0); }  void _M_do_reset()                      { _M_w = 0; }  bool _M_is_equal(const _Base_bitset<1>& __x) const    { return _M_w == __x._M_w; }  bool _M_is_any() const    { return _M_w != 0; }  size_t _M_do_count() const {    size_t __result = 0;    const unsigned char* __byte_ptr = (const unsigned char*)&_M_w;    const unsigned char* __end_ptr      = ((const unsigned char*)&_M_w)+sizeof(_M_w);    while ( __byte_ptr < __end_ptr ) {      __result += _Bit_count<true>::_S_bit_count[*__byte_ptr];      __byte_ptr++;    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩黄色片在线观看| 国产日韩精品久久久| 欧美精品久久久久久久久老牛影院| 成人三级伦理片| 成人av资源在线| 97久久超碰国产精品| 91麻豆国产香蕉久久精品| 色综合天天在线| 成人avav影音| 91成人在线免费观看| 久久综合国产精品| 久久先锋影音av| 亚洲午夜一区二区| 秋霞影院一区二区| 成人综合婷婷国产精品久久蜜臀| 国产99久久久国产精品| 色欧美日韩亚洲| 日韩精品中文字幕一区| 国产精品美女一区二区三区 | 亚洲资源在线观看| 一区二区三区中文字幕在线观看| 日韩激情在线观看| 99久久精品免费看国产| 日韩免费高清视频| 国产精品对白交换视频| 琪琪久久久久日韩精品| av中文字幕不卡| 精品少妇一区二区| 亚洲一区二区av在线| 国产福利电影一区二区三区| 欧美色综合久久| 亚洲欧美欧美一区二区三区| 狠狠久久亚洲欧美| 欧美性受xxxx黑人xyx性爽| 欧美成人一级视频| 日本系列欧美系列| 不卡影院免费观看| 日韩一级片在线观看| 亚洲精品v日韩精品| 高清不卡一区二区| 国产精品萝li| 99精品视频在线观看免费| 欧美国产丝袜视频| 国产一区二区三区四区五区入口| 制服丝袜在线91| 免费看欧美女人艹b| 久久久三级国产网站| 丁香啪啪综合成人亚洲小说 | 成人av在线资源网站| 中文字幕精品三区| av午夜一区麻豆| 亚洲综合在线电影| 91精品国产高清一区二区三区蜜臀 | 久久精品99国产精品| 欧美xxx久久| 国产69精品久久777的优势| 久久一区二区三区四区| 国内精品在线播放| 日韩欧美国产精品| 激情久久五月天| 久久久三级国产网站| 91丨九色丨尤物| 日本美女视频一区二区| 国产日产欧美一区| 欧美色精品在线视频| 国产一区二区在线观看视频| 国产精品久久网站| 日韩一区二区三区观看| 不卡在线视频中文字幕| 麻豆免费看一区二区三区| 国产精品国产三级国产aⅴ无密码| 欧美裸体一区二区三区| 成人性色生活片| 人人狠狠综合久久亚洲| 国产精品国产三级国产专播品爱网| 欧美日本高清视频在线观看| 99久久99久久综合| 国产传媒久久文化传媒| 国产成人精品免费在线| 免费成人深夜小野草| 天天影视涩香欲综合网| 亚洲一二三四在线| 亚洲一二三四久久| 亚洲欧洲综合另类| 一区二区中文视频| 欧美日韩你懂得| 91福利资源站| 欧美一区二区三区成人| 日韩一区和二区| 国产精品久久福利| 亚洲一区二区三区激情| 日韩二区在线观看| 国产一区二区三区四区在线观看| 国产成人小视频| 欧美性色欧美a在线播放| 在线播放日韩导航| 日本一二三不卡| 亚洲国产一区二区视频| 国产原创一区二区| 欧美色图在线观看| 久久美女高清视频| 日韩av电影天堂| 不卡在线视频中文字幕| 欧美久久久一区| 亚洲蜜臀av乱码久久精品| 国产一区二区视频在线| 在线电影院国产精品| 亚洲人成精品久久久久| 国产精品69毛片高清亚洲| 欧美久久久久久久久久| 亚洲人成伊人成综合网小说| 久久91精品国产91久久小草| 欧美日韩在线亚洲一区蜜芽| 国产精品网曝门| 国产激情精品久久久第一区二区| 欧美一级日韩免费不卡| 亚洲国产你懂的| 在线观看免费成人| 亚洲国产欧美一区二区三区丁香婷| 不卡的av在线播放| 中文字幕中文字幕在线一区 | 亚洲精品欧美激情| 色菇凉天天综合网| 国产精品超碰97尤物18| 成人精品视频一区二区三区| 国产婷婷色一区二区三区 | 337p粉嫩大胆色噜噜噜噜亚洲| 日本va欧美va精品| 欧美大片拔萝卜| 成人手机电影网| 亚洲一区二区三区四区不卡| 欧美日韩一本到| 麻豆国产一区二区| 国产精品久久二区二区| 欧美在线视频不卡| 九九视频精品免费| 中国色在线观看另类| 白白色亚洲国产精品| 视频一区二区国产| 亚洲国产高清aⅴ视频| 色网站国产精品| 久久se这里有精品| 亚洲免费在线看| 精品成人在线观看| 欧美日本免费一区二区三区| 亚洲综合区在线| 精品国产一区二区三区久久久蜜月| 国产精品影视在线观看| 亚洲色图制服诱惑| 久久综合久久综合亚洲| 欧美日韩国产精品成人| 9i看片成人免费高清| 国产一区二区三区免费看| 亚洲一二三区在线观看| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美日韩一区二区三区四区五区| 韩国av一区二区三区| 午夜精品在线看| 亚洲午夜精品网| 亚洲人一二三区| 国产欧美精品日韩区二区麻豆天美| 91精品国产一区二区| 欧美揉bbbbb揉bbbbb| 欧美系列日韩一区| 欧美日本在线观看| 欧美日韩国产在线观看| 欧美性色黄大片手机版| 欧美日本视频在线| 欧美一区二区大片| 欧美一级高清大全免费观看| 在线综合亚洲欧美在线视频| 欧美亚洲国产bt| 日韩一区二区精品在线观看| 欧美日韩aaa| 国产欧美一区二区精品性| 自拍偷拍国产亚洲| 日韩精品一卡二卡三卡四卡无卡| 日韩黄色免费电影| 国产美女精品人人做人人爽| 国产一区二区三区综合| 东方欧美亚洲色图在线| 成人av在线网站| 欧美日韩情趣电影| 久久久一区二区三区捆绑**| 欧美国产日韩a欧美在线观看 | 国产1区2区3区精品美女| 99久久精品久久久久久清纯| 欧洲国内综合视频| 欧美一区二区视频免费观看| 久久综合网色—综合色88| 欧美国产激情一区二区三区蜜月| 国产精品久久久久久久第一福利 | 欧美性xxxxxxxx| 国产精品沙发午睡系列990531| 亚洲国产一区二区三区| 日韩中文字幕91| 99久久精品免费看国产免费软件| 91麻豆精品国产91| 一区二区高清在线| 成人av免费在线观看|