C++ STL 바이너리 검색
Harshit Jindal
2023년10월12일
노트
이진 검색에 대한 자세한 내용은 이진 검색 알고리즘 문서를 참조하세요.
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);
여기에서T
는int
, 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
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