Рубрики

Функция _Find_next () в C ++ bitset с примерами

_Find_next () — это встроенная функция в классе Biteset C ++, которая возвращает целое число, которое указывает позицию следующего установленного бита в наборе битов после индекса. Если после индекса нет никакого установленного бита, _Find_next (index) вернет размер набора битов.

Синтаксис:


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

Параметры: Функция принимает один обязательный индекс параметра, который указывает индекс, после которого в битовом наборе должен быть найден первый установленный бит.

Возвращаемое значение: функция возвращает целое число, которое указывает на позицию следующего установленного бита в наборе битов после указанного индекса. Если нет установленного бита после индекса (указанного индекса), _Find_next (индекс) вернет размер набора битов.

Ниже приведена иллюстрация вышеуказанной функции:

Пример:

// C ++ программа для иллюстрации
// функции _Find_next ()

  
#include <bits/stdc++.h>

using namespace std;

  
#define M 32

  

int main()

{

    // конструктор по умолчанию инициализируется со всеми битами 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;

  

    // функция возвращает следующий установленный бит

    // в битах после индекса 0

    cout << "Next set bit after index 0 in bset\n";

    cout << bset._Find_next(0) << "\n";

  

    // функция возвращает следующий установленный бит

    // в битах после индекса 6

    cout << "Next set bit after index 6 in bset\n";

    cout << bset._Find_next(6) << "\n";

  

    // находит все установленные биты в наборе битов 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";

  

    // функция возвращает bset2.size ()

    // когда нет заданного бита после индекса

    cout << "Next set bit after index 5 in bset2\n";

    cout << bset2._Find_next(5) << "\n";

  

    return 0;

}

Выход:

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

Ссылка: https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.4/bitset-source.html

Рекомендуемые посты:

Функция _Find_next () в C ++ bitset с примерами

0.00 (0%) 0 votes