LINUX.ORG.RU

История изменений

Исправление AntonI, (текущая версия) :

А что мешает на плюсах свелосипедить свой битовый массив, с продажными тяночками и блэкджеком?

class BoolArray{
  std::vector<uint64_t> data;
  int sz = 0;
public:
  void resize(int sz_){ sz = sz_; data.resize(sz/64+bool(sz%64), 0); } 
  int size() const { return sz; }
  bool get(int i) const { return data[i>>6]&(uint64_t(1)<<(i&0x3F)); }
  void on(int i){ data[i>>6] |= uint64_t(1)<<(i&0x3F); }
  void off(int i){ data[i>>6] &= ~(uint64_t(1)<<(i&0x3F)); } 
  bool any() const { for(uint64_t x: data){ if(x) return true; } return false; }
  void clean(){ for(uint64_t &x: data) x = 0; }
  void out(std::ostream &S) const { for(int i=0; i<sz; i++){ S<<(get(i)? 'y': 'n'); } S<<'='<<(any()? 'Y': 'N')<<' ';  }
};

Исходная версия AntonI, :

А что мешает на плюсах свелосипедить свой битовый массив, с продажными тяночками и блэкджеком?