[STL] search

STL/변경 가능 시퀀스 알고리즘 2010. 5. 17. 15:42 Posted by zetz
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