search1.cpp
search1.cpp
#include ‹stl.h›
#include ‹iostream.h›
int main() {
typedef vector‹int› IntVec;
IntVec v1(10);
iota(v1.begin(), v1.end(), 0);
IntVec v2(3);
iota(v2.begin(), v2.end(), 50);
ostream_iterator‹int› iter(cout, " ");
cout ‹‹ "v1: ";
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
cout ‹‹ "v2: ";
copy(v2.begin(), v2.end(), iter);
cout ‹‹ endl;
IntVec::iterator location;
location = search(v1.begin(), v1.end(), v2.begin(), v2.end());
if (location == v1.end()) cout ‹‹ "v2 not contained in v1" ‹‹ endl;
else cout ‹‹ "Found v2 in v1 at offset: " ‹‹ location - v1.begin() ‹‹ endl;
iota(v2.begin(), v2.end(), 4);
cout ‹‹ "v1: ";
copy(v1.begin(), v1.end(), iter);
cout ‹‹ endl;
cout ‹‹ "v2: ";
copy(v2.begin(), v2.end(), iter);
cout ‹‹ endl;
location = search(v1.begin(), v1.end(), v2.begin(), v2.end());
if (location == v1.end()) cout ‹‹ "v2 not contained in v1" ‹‹ endl;
else cout ‹‹ "Found v2 in v1 at offset: " ‹‹ location - v1.begin() ‹‹ endl;
return 0;
}