C++ STL 바이너리 검색

Harshit Jindal 2023년10월12일
  1. C++ STL binary_search()개요
  2. 바이너리 검색을위한 C++ 프로그램
C++ STL 바이너리 검색
노트
이진 검색에 대한 자세한 내용은 이진 검색 알고리즘 문서를 참조하세요.

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;
}
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

관련 문장 - C++ Algorithm