search
search (부분 시퀀스 찾기)
범위에서 부분 시퀀스와 일치하는 첫 위치를 찾는 알고리즘이에요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
search는 [first1, last1) 안에서 [first2, last2)와 일치하는 첫 부분을 찾아요.
template< class ForwardIt1, class ForwardIt2 >
ForwardIt1 search( ForwardIt1 first1, ForwardIt1 last1,
ForwardIt2 first2, ForwardIt2 last2 ); // (1)
비교기 버전과 search_n도 있어요.
template< class ForwardIt1, class ForwardIt2, class BinaryPred >
ForwardIt1 search( ForwardIt1 first1, ForwardIt1 last1,
ForwardIt2 first2, ForwardIt2 last2,
BinaryPred p ); // (2)
- 반환 값: 첫 일치 구간의 시작 반복자. 없으면
last1. [first2, last2)가 비어 있으면first1을 반환해요.
std::string s = "abcxabc";
std::string pat = "abc";
auto it = std::search(s.begin(), s.end(), pat.begin(), pat.end());
// 첫 "abc"의 시작
부분 문자열/시퀀스의 첫 등장을 찾을 때 써요. find_end가 마지막 등장을 찾는 것과 대비돼요.