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가 마지막 등장을 찾는 것과 대비돼요.

더 알아보기 (Learn more)

cppreference