HOWTO · C++

C++ STL 바이너리 검색

이 튜토리얼은 C++ 표준 템플릿 라이브러리에서 바이너리 검색 알고리즘을 사용하는 방법을 보여줍니다.

이 페이지의 내용
노트
이진 검색에 대한 자세한 내용은 이진 검색 알고리즘 문서를 참조하세요.

C++는 바로 사용할 수있는binary_search()함수를 제공하므로 함수를 직접 구현할 필요가 없습니다. 사용하기 매우 간단하고 효율적으로 구현 된 방법이며 오류가 발생하지 않습니다.

C++ STL binary_search()개요

통사론

DEFAULT
    : template <class ForwardIterator, class T>
      bool
      binary_search(ForwardIterator first, ForwardIterator last, const T& val);

CUSTOM COMPARISON FUNCTION
    : template <class ForwardIterator, class T, class Compare>
      bool
      binary_search(ForwardIterator first, ForwardIterator last, const T& val,
                    Compare comp);

여기에서Tint, float, short, long, byte, char, double및 사용자 정의Object중 하나 일 수 있습니다. 잘.

이진 검색 알고리즘을 사용하여[first, last)내의 요소가 대상 요소X와 일치하는지 확인합니다. 기본적으로보다 작음 연산자를 사용하여 요소를 비교하지만 위에 제공된 두 번째 템플릿에 설명 된대로 자체 사용자 정의comp를 제공 할 수도 있습니다.

매개 변수

first 지정된 배열 범위의 첫 번째 요소를 가리키는 순방향 반복기입니다.
last 지정된 배열 범위의 마지막 요소를 가리키는 순방향 반복기입니다.
comp 두 개의 정방향 반복기를 인수로 받아들이고 두 인수가 올바른 순서로 존재하면true를 반환하는 사용자 정의 이진 술어 함수입니다. 인수를 수정하지 않고 엄격한 약한 순서를 따라 요소를 정렬합니다.
val 주어진 배열 범위 내에서 검색하는 대상 요소입니다.

반환

대상 요소를 찾으면 true를 반환합니다. 그렇지 않으면 거짓을 반환합니다.

바이너리 검색을위한 C++ 프로그램

#include <bits/stdc++.h>
using namespace std;

int main() {
  vector<int> v = {1, 2, 3, 4, 5, 6};

  if (binary_search(v.begin(), v.end(), 5)) {
    cout << "Element found" << endl;
  } else {
    cout << "Element not found" << endl;
  }

  return 0;
}