株式会社エス・スリー・フォー

STL Samples : <bitset>

固定長bit配列

classbitset

source

#include <iostream>
#include <bitset>

using namespace std;

/*
 * 200までの素数表
 */

void std_bitset() {
  const int N = 200;
  bitset<N>; primes; // 長さNのbool配列
  // primes[i] == false ならば i は素数である
  primes[0] = true;
  primes[1] = true;
  // "エラトステネスのふるい"
  for ( int i = 0; i < N; ++i )
    if ( !primes[i] ) {
      // iが素数であったとき、その倍数は素数ではない。
      cout << i << ' ';
      for ( int j = i + i; j < N; j += i )
        primes[j] = true;
    }
  cout << endl;
}