Función _Find_next() en el conjunto de bits de C++ con ejemplos

_Find_next () es una función incorporada en la clase Biteset de C++ que devuelve un número entero que hace referencia a la posición del siguiente bit establecido en el conjunto de bits después del índice. Si no hay ningún bit establecido después del índice, _Find_next(index) devolverá el tamaño del conjunto de bits.

Sintaxis:


iterator bitset._Find_next(index)
           or
int bitset._Find_next(index)

Parámetros: la función acepta un índice de parámetro obligatorio que especifica el índice después del cual se encuentra el primer bit establecido en el conjunto de bits.

Valor de retorno: la función devuelve un número entero que se refiere a la posición del siguiente bit establecido en el conjunto de bits después del índice especificado. Si no hay ningún bit establecido después del índice (el índice especificado), _Find_next (índice) devolverá el tamaño del conjunto de bits.

A continuación se muestra la ilustración de la función anterior:

Ejemplo:

// C++ program for illustration
// of _Find_next() function
  
#include <bits/stdc++.h>
using namespace std;
  
#define M 32
  
int main()
{
    // default constructor initializes with all bits 0
    bitset<M> bset;
    bitset<M> bset1;
    bitset<M> bset2;
  
    // 00000000000000000000000000100000
    bset[5] = 1;
  
    // 00000000000000000000010000100000
    bset[10] = 1;
  
    // 01000000000000100001000000000001
    bset1[0] = bset1[12] = bset1[17] = bset1[30] = 1;
  
    // function returns the next set bit
    // in bitset after index 0
    cout << "Next set bit after index 0 in bset\n";
    cout << bset._Find_next(0) << "\n";
  
    // function returns the next set bit
    // in bitset after index 6
    cout << "Next set bit after index 6 in bset\n";
    cout << bset._Find_next(6) << "\n";
  
    // finds all set bits in bitset bset1
    cout << "Find all set bits in bset1\n";
    for (int i = bset1._Find_first();
         i < bset1.size();
         i = bset1._Find_next(i))
        cout << i << " ";
    cout << "\n";
  
    // function returns bset2.size()
    // when there isn't any set bit after index
    cout << "Next set bit after index 5 in bset2\n";
    cout << bset2._Find_next(5) << "\n";
  
    return 0;
}
Producción:

Next set bit after index 0 in bset
5
Next set bit after index 6 in bset
10
Find all set bits in bset1
0 12 17 30 
Next set bit after index 5 in bset2
32

Referencia: https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/bitset-source.html

Publicación traducida automáticamente

Artículo escrito por Subash23 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *