2 augusti, 2019 Incopia

c++ bitset 예제

비트 집합을 초기화하는 데 사용되는 경우 포함된 비트 시퀀스를 생성하는 비트 집합 개체를 정수로 변환합니다. 멤버 함수를 적용하면 비트 집합에 포함된 비트 의 순서에서 발견되는 것과 동일한 순서1및 0자리의 정수를 반환합니다. _Pos 비트 집합의 비트를 이동해야 하는 왼쪽 위치 수입니다. 비트 집합 컨테이너를 생성하고 0으로 초기화합니다. 지정된 비트 집합으로 부등분에 대한 대상 비트 집합을 테스트합니다. 여러 선택적 데이터 원본 중 하나에서 새 비트 집합을 생성합니다. 모든 비트가 0이면 false입니다. 첫 번째 생성자 템플릿은 클래스 bitset 개체를 생성하고 0과 문자열로 제공되는 문자에서 비트를 초기화합니다. 문자열의 문자가 0 또는 1이 아닌 경우 생성자는 클래스 잘못된 인수의 개체를 throw합니다. 지정된 위치(_Pos)가 문자열의 길이를 초과하면 생성자는 out_of_range 클래스의 개체를 throw합니다. 생성자는 위치 _Pos + j의 문자열에 있는 문자가 1인 비트 집합의 위치 j에서 해당 비트만 설정합니다. 기본적으로 _Pos는 0입니다. 멤버 함수가 호출된 수정된 비트 집합의 복사본입니다.

유사한 벡터 클래스와 달리 비트 집합 클래스에는 이터레이터가 없으며 C++ 표준 라이브러리 컨테이너가 아닙니다. 또한 벡터 비트 집합 선언될 때 템플릿 매개 변수 N에 의해 지정된 크기에 따라 컴파일 시간에 고정되는 특정 크기의 벡터와 다릅니다._Pos 문자열의 문자 위치, 왼쪽에서 오른쪽으로 계산 비트 집합의 첫 번째 비트를 초기화하는 데 사용됩니다. 카운트 및 크기 방법과 혼동하지 마십시오. bitset 개체의 count() 메서드는 지정된 비트 집합의 비트 수를 켜져 있는 상태로 설정된 상태로 지정합니다. 아래 코드 조각은 세 비트가 켜져 있음을 보여 주었습니다. _Pos 값을 할당하도록 설정할 비트 집합의 비트 위치입니다. 비트 집합의 경우 재설정 및 뒤집기 함수가 정의됩니다. set function set (1) 인수가 제공되지 않으면 비트 집합의 모든 비트는 그 위치가 인수로 지정된 비트를 설정합니다. 같은 방법으로 재설정 및 뒤집기는 인수없이 호출되는 경우에도 전체 비트 집합에서 작업을 수행하고 일부 위치가 인수로 제공되는 경우 해당 위치에서만 작업을 수행합니다.

비트 집합의 경우 모든 비트별 연산자는 캐스팅 또는 변환 없이 비트집합에 직접 적용할 수 있는 오버로드되어 있으며, 주 오버로드연산자는 $, ==, !=, 시프트 연산자 로 하여 비트셋에서 작업을 쉽게 합니다. 위의 연산자의 사용은 아래 코드에 표시됩니다. 이 비트 집합의 모든 비트를 테스트하여 모두 true로 설정되어 있는지 확인합니다. 에서 N 비트까지 추출하고 다른 비트 집합 x로 저장합니다. 비트 집합의 모든 비트 값을 반전하거나 지정된 위치에서 단일 비트를 반전합니다. 세 개의 생성자가 클래스 bitset 생성하는 데 사용할 수 있습니다: 아래 와 같은 비트 집합 구성에 대한 코드 스니펫: 플래그 집합에 플래그를 유지하는 컴팩트한 방법을 제공하는 고정된 비트 수로 구성된 시퀀스를 저장하는 개체 유형을 설명합니다. 품목 또는 조건에 따라 다수 있습니다. bitset 클래스는 비트 컬렉션을 포함하고 각 비트에 대한 일정한 시간 액세스를 제공하는 형식 비트 집합의 개체에 대한 작업을 지원합니다.