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

Опубликовано: 29 Декабря, 2021

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

Синтаксис:


итератор bitset._Find_next (индекс)
           или
int bitset._Find_next (индекс)

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

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

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

Пример:

// 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 " ;
cout << bset._Find_next(0) << " " ;
// function returns the next set bit
// in bitset after index 6
cout << "Next set bit after index 6 in bset " ;
cout << bset._Find_next(6) << " " ;
// finds all set bits in bitset bset1
cout << "Find all set bits in bset1 " ;
for ( int i = bset1._Find_first();
i < bset1.size();
i = bset1._Find_next(i))
cout << i << " " ;
cout << " " ;
// function returns bset2.size()
// when there isn't any set bit after index
cout << "Next set bit after index 5 in bset2 " ;
cout << bset2._Find_next(5) << " " ;
return 0;
}
Выход:
Следующий установленный бит после индекса 0 в bset
5
Следующий установленный бит после индекса 6 в bset
10
Найти все установленные биты в bset1
0 12 17 30 
Следующий установленный бит после индекса 5 в bset2
32

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

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
C++