반응형
→ STL(Standard Template Library)에서 제공하는 std::find 함수는 지정된 값을 검색하여 해당 값이 컨테이너에서 처음 발견되는 위치를 찾는 함수이다. std::find 함수는 순차적으로 컨테이너를 탐색하면서 지정된 값과 일치하는 첫 번째 원소를 찾는다.
- std::find 함수는 두 개의 반복자를 인수로 받는다. 첫 번째 인수는 검색을 시작할 범위의 시작 반복자이고, 두 번째 인수는 검색을 종료할 범위의 끝 반복자이다. 여기서 범위는 검색을 수행할 컨테이너의 일부분이다. 범위는 반열린 구간으로 해석되며, 시작 반복자는 포함되고 끝 반복자는 제외된다.
- std::find 함수의 세 번째 인수는 찾을 값을 나타낸다. 이 값과 일치하는 첫 번째 원소를 찾는다.
- std::find 함수는 검색된 값의 위치를 나타내는 반복자를 반환. 값이 발견되지 않은 경우에는 끝 반복자(end() 함수가 반환하는 값)를 반환.
- 검색된 값의 위치를 확인하기 위해서는 반환된 반복자를 사용. 벡터의 시작 반복자로부터의 거리를 계산하여 해당 인덱스를 얻을 수 있다.
std::find 함수는 다양한 컨테이너에 대해 동일한 방식으로 작동하므로, 벡터뿐만 아니라 리스트, 세트 등의 다른 컨테이너에서도 사용할 수 있다.
예제를 통해 알아보자
#include <iostream>
#include <algorithm> // std::find 함수를 사용하기 위해 포함해야 함
#include <vector>
int main() {
// 정수형 벡터 생성
std::vector<int> numbers;
numbers.push_back(1);
numbers.push_back(2);
numbers.push_back(3);
numbers.push_back(4);
numbers.push_back(5);
// 찾을 값 정의
int valueToFind = 3;
// std::find 함수를 사용하여 벡터에서 지정된 값 찾기
std::vector<int>::iterator it = std::find(numbers.begin(), numbers.end(), valueToFind);
// 결과 확인
if (it != numbers.end()) {
std::cout << "Value " << valueToFind << " found at index " << std::distance(numbers.begin(), it) << std::endl;
} else {
std::cout << "Value " << valueToFind << " not found in the vector" << std::endl;
}
return 0;
}
결과
Value 3 found at index 2
반응형
'C++ > C++ STL 라이브러리' 카테고리의 다른 글
vector max_element, min_element (0) | 2024.02.09 |
---|