2012-05-09 3 views
9

벡터 v1이 벡터 v2 내부에 있는지 확인하려고합니다. 내 벡터가 정렬되어 있으므로 순서가 유지되어야합니다. 예를 들어STL 벡터 내에서 C++ STL 벡터를 찾으려면

, 만약 V1 = I는 가리키는 반복자 얻을하고자V2 = ( b를 E, F A,) ( b) v2.

STL 찾기는 벡터 안에 하나의 개체 만 찾습니다. 내가 원하는 것은 string :: find와 비슷한 것이다.

이렇게하려면 STL에 어떤 기능이 있습니까?

+0

벡터가 주문되었다고 할 때, 어떤 기준에 따라 주문되어 다른 요소를 비교하여 어느 것이 먼저 왔는지를 결정할 수 있다는 의미입니까? 또는 요소를보고 비교하는 것만으로는 파생 될 수없는 특정 순서로 설정했음을 의미합니까? –

+1

[std :: includes] (http://en.cppreference.com/w/cpp/algorithm/includes)가 도움이 될 수 있지만 귀하의 경우에 어떤 순서가 사용되는지 알지 못합니다. –

+1

순서에 따라 나는 STL 벡터를 사용하여 요소를보고 비교하는 것만으로는 얻을 수없는 정렬 된 목록을 모델링했다는 것을 의미합니다. v1의 멤버가 동일한 순서로 v2에 나타나는지 확인해야합니다. 벡터를 정렬 할 수 없습니다. 다른 문자열이 검색 될 때 문자열을 정렬하지 않는 것처럼 말입니다. – Ari

답변

13

다른 시퀀스의 하위 시퀀스를 검색하는 것처럼 보입니다. 표준 라이브러리에서 std::search으로 처리 할 수 ​​있습니다.

auto it = std::search(v2.begin(), v2.end(), v1.begin(), v1.end()); 
+0

고마워,이게 내가 찾고 있던 것 같아! – Ari