선형탐색
비교 하는 범위의 첫 번째 요소에 대한 반복자를 반환합니다 . 그러한 요소가 없으면 last 를 반환
반환받은 반복자를 시작 반환자인 begin()을 빼줌으로서 위치(인덱스)를 구할 수 있다.
int num = 4;
auto it = find(v.begin(), v.end(), num);
if (it == v.end()) {
cout << num << "은 찾을 수 없습니다.\n";
}
else {
cout << num << "는 존재하며 인덱스는 " << it - v.begin() << " 입니다.\n";
}
이진탐색
비교하는 수보다 작지 않은(크거나 같은) 첫 번째 요소를 가리키는 반복자를 반환
⭐️ 탐색을 진행할 배열 혹은 벡터는 오름차순 정렬되어 있어야 함
find와 마찬가지로 반환받은 반복자를 시작 반환자인 begin()을 빼줌으로서 위치(인덱스)를 구할 수 있다.
for (int i = 0; i < N; i++)
{
auto index = lower_bound(sort_location.begin(), sort_location.end(), location[i]);
cout << index - sort_location.begin() << ' ';
}
비교하는 수보다 큰 첫 번째 요소를 가리키는 반복자를 반환
⭐️ 탐색을 진행할 배열 혹은 벡터는 오름차순 정렬되어 있어야 함
find와 마찬가지로 반환받은 반복자를 시작 반환자인 begin()을 빼줌으로서 위치(인덱스)를 구할 수 있다.