本文整理汇总了C++中bitset::flip方法的典型用法代码示例。如果您正苦于以下问题:C++ bitset::flip方法的具体用法?C++ bitset::flip怎么用?C++ bitset::flip使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类bitset
的用法示例。
在下文中一共展示了bitset::flip方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: printf
template<class V> void print_container(V& container, bitset<MAX_BITS_SIZE>& flag, bool reverse, bool is_servercmp)
{
if (reverse)
{
flag.flip();
}
typename V::iterator it = container.begin();
if (!is_servercmp) // print different block
{
int32_t count = static_cast<int32_t> (flag.count());
for (int32_t i = 0, c=0; (it != container.end()) && (count > 0); i++, it++)
{
if (flag.test(i))
{
cout << *it ;
if((++c) % 20 == 0)
cout<<"\n";
else
cout<<" ";
count--;
}
}
printf(" [%d]\n", static_cast<int32_t>((flag.count() - count)));
}
else
{
for (int32_t i = 0; it != container.end(); i++, it++)
{
printf("%23s%c", tbsys::CNetUtil::addrToString(*it).c_str(),
suffix(flag[i]));
}
printf(" [%zd]\n", container.size());
}
}
示例2: dfs
void dfs(vector<vector<int>>& vv, bitset<maxNUM>& bt, int pos, int n, int k) {
if(pos > n || bt.count() > k) return ;
if(bt.count() == k && pos == n){
string ans = bt.to_string();
vector<int> vt;
vt.clear();
for(int i = 0; i < n; i++) {
if(ans[i] == '1') vt.push_back(i + 1);
}
vv.push_back(vt);
return ;
}
bt.flip(maxNUM - pos - 1);
dfs(vv, bt, pos + 1, n, k);
bt.flip(maxNUM - pos - 1);
dfs(vv, bt, pos + 1, n, k);
}
示例3: sieve
void sieve()
{
p.flip();
p[0] = p[1] = 0;
for(int i=2; i*i<MAX; i++)
if( p[i] )
for(int j=i*i; j<MAX; j+=i)
p[j] = 0;
}
示例4: sieve
void sieve()
{
is_prime.flip();
for(int n = 3; n < SQRT_N; n += 2)
if(is_prime[n>>1])
for(int j = n * n; j < MAX_N; j += (n<<1))
is_prime[j>>1] = false;
is_prime[0] = false;
}
示例5: sieve
void sieve(){
isp.reset();
isp.flip();
isp.set(0,false);
isp.set(1,false);
int i,j;
rep(i,2,1000)
if(isp[i])
repdf(j,2*i,1000000,i)isp.set(j,false);
}
示例6: populatePrime
void populatePrime() // seive of eratosthenes
{
isPrime.reset();
isPrime.flip();
isPrime[0] = isPrime[1] = 0;
for(int i=2; i*i<=MAX; i++)
if(isPrime[i])
for(int j=i*i; j<MAX; j = j+i)
isPrime[j] = 0;
}
示例7:
//Returns the result N after running PQ through all the gates
bitset<30> Circuit::runGates(bitset<30> pq)
{
for(int i=0;i<gates.size();++i)
{
if(gates[i].noControllers())
{
pq.flip(gates[i].getN());
flipped[i] = 1;
}
else
{
int flip = 1;
vector<int> temp = gates[i].getControllers();
for(int j=0;j<temp.size();++j)
{
if(flip)
{
if(gates[i].getInverted())
{
if(pq[temp[j]])
{
flip = 0;
}
}
else
{
if(!(pq[temp[j]]))
{
flip = 0;
}
}
}
}
if(flip)
{
pq.flip(gates[i].getN());
flipped[i] = 1;
}
}
}
return pq;
}
示例8: press
bitset<100> press ( int button, bitset<100> lamps, int N ) {
if ( button == 1 ) return lamps.flip();
bitset<100> mask;
int i= (button == 3) ? 1 : 0,
leap = (button == 4) ? 3 : 2;
for ( ; i < N; i+= leap) mask[100-i-1]= 1;
return lamps^mask;
}
示例9: gen_sieve
void gen_sieve() {
prime.reset();
prime.flip();
prime.set(0, false);
prime.set(1, false);
for (size_t i = 2; i <= primen; ++i)
if (prime.test(i)) {
for (size_t j = i * i; j <= primen; j += i)
prime.set(j, false);
}
}
示例10: sieveGen
void sieveGen(){
sieve.flip();
sieve.reset(0);
sieve.reset(1);
for( int k = 2; k <= OM; k++ )
if(sieve.test(k)){
pl.push_back(k);
if(k <= sqrt(OM))
for(int i = k + k; i <= OM; i += k )
sieve.reset(i);
}
}
示例11: SieveOfAtkin
inline void SieveOfAtkin(const int &largest) {
int square;
for (int i = 2; i < largest; ++i) primes[i] = false;
primes.set(0, false);
primes.set(1, false);
primes.set(2, true);
primes.set(3, true);
//Sieve Of Atkin
int n, nmod12;
for (int x = 1; x <= 2236; ++x) { //x till root/2
for (int y = 1; y <= 4472; y += 2) { //odd y
n = 4*x*x + y*y;
nmod12 = n%12;
if(n < largest && (nmod12 == 1 || nmod12 == 5)) primes.flip(n);
}
}
for (int x = 1; x <= 4472; ++x) {
for (int y = 1; y <= 4472; ++y) {
n = 3*x*x + y*y;
nmod12 = n%12;
if(n < largest && (nmod12 == 7)) primes.flip(n);
n = 3*x*x - y*y;
nmod12 = n%12;
if(x > y && n < largest && (nmod12 == 11)) primes.flip(n);
}
}
//Eliminate by Sieve
for (int i = 5; i <= 4472; ++i) {
if(primes.test(i)) {
square = i * i;
for(int j = square; j <= largest; j += square) {
primes[j] = false;
}
}
}
}
示例12: sieve
void sieve(int upper_bound){
sieve_size = upper_bound;
bs.reset();
bs.flip();
bs[0] = false;
bs[1] = false;
for(long long i = 2 ; i <= upper_bound ; i++)
if(bs[i]){
for(long long j = i * i ; j <= upper_bound ; j += i)
bs[j] = false;
primes.push_back(i);
}
}
示例13: setPrimes
void setPrimes()
{
bset.reset();
bset.flip();
bset[1]=0;
for (size_t i=2;i<LIMIT;i++)
if (bset.test(i))
for (size_t j=2; j*i<LIMIT; j++ )
bset[j*i]=0;
}
示例14: create_prime
void create_prime()
{
prime.reset();
prime.flip();
prime[0]=prime[1]=0;
for (long long i=2; i<MAX; ++i) {
if (prime[i]) {
for (long long j=i*i; j<MAX; j+=i){
prime[j]=0;
}
}
}
}
示例15: generate_primes
void generate_primes(ll upperbound)
{
bs.reset();
bs.flip();
bs.set(0,false); bs.set(1,false);
for(ll i = 2; i <= upperbound+1; i++)
if(bs.test((i))){
for(ll j = i * i ; j <= upperbound+1; j += i)
bs.set(j,false);
primes.push_back((int)i);
}
}