1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | /* 제너릭 search 알고리즘은 두 개의 반복자 구간을 인자로 받아,두 번째 구간에 담겨진 서브 시퀀스를 첫 번째 구간 내에서 찾아 그 위치를 알아낸다. 이는 C 라이브러리 함수인 strstr 를 일반화 시킨것과 같다. */ #include <iostream> #include <cassert> #include <algorithm> #include <vector> #include <deque> using namespace std; int main() { cout<< "Illustrating the generic search algorithm." << endl; vector< int > vector1(20); deque< int > deque1(5); // vector1을 0, 1, ..., 19로 초기화 int i; for (i=0; i< 20; ++i) vector1[i] = i; // deque1을 5, 6, 7, 8, 9로 초기화 for (i=0; i< 5; ++i) deque1[i] = i + 5; // vector1 내에서 deque1와 동일한 시퀀스가 맨 처음 나타나는 위치를 찾는다. vector< int >::iterator k = search(vector1.begin(), vector1.end(), deque1.begin(), deque1.end()); // 5, 6, 7, 8, 9가 vector1 내의 k가 가리키는 위치에서 // 시작된다는 것을 확인 for (i=0; i< 5; ++i) assert ( *(k+i) == i+5 ); cout<< " --- Ok." << endl; return 0; } |
'STL > 변경 가능 시퀀스 알고리즘' 카테고리의 다른 글
[STL] transform (0) | 2010.05.17 |
---|---|
[STL] unique (0) | 2010.05.17 |
[STL] rotate (0) | 2010.05.17 |
[STL] reverse (0) | 2010.05.17 |
[STL] replace (0) | 2010.05.17 |