algorithm

Posted 2012. 8. 13. 22:13

container가  가진 데이터를 다양한 방법으로 처리하는 프로시져다

그렇지만 container의 멤버함수는 아니고 템플릿 함수들이다.

 #include <algorithm> 

  1. find(시작주소, 끝주소, 찾을값)

    ->주어진 원소와 같은것으로 판단되는 원소를 검색하는 선형 검색 알고리즘. 기본적으로 == 연산자를 사용

    ->동일한 최초의 값을 리턴

    ex) int arr[5] = {1, 2, 3, 4, 5};

    int* k = find(arr, arr+5, 3);

    cout<<(*k)<<endl;  => 3

    -> 반환값 : 찾는 값의 주소

  2. sort(시작, 끝)

    -> 정렬 알고리즘(지정한 순서로 정렬)

    ex) int arr[5] = {1, 5, 2, 3, 4};

    sort(arr, arr+5);  //1,2,3,4,5 순으로 정렬

  3. make_heap()

    -> 어떤 구간[S,E)를 힙으로 만든다

  4.  count(시작주소, 끝주소, 찾을값)

    -> 엘리먼트의 갯수를 리턴

    -> 반환값 : 찾는 값의 갯수 (갯수만큼 count가 ++됨)

  5.  search(B의시작주소, B의 끝주소, A의시작주소, A의 끝주소)

    -> 어떤 한 container(A)의 연속적은 패턴(값들)을 다른 한 container(B)에서 찾아본다

    -> 반환값 : 최초에 발견된 값들의 B의 시작주소

  6.  equal()

    -> 두 콘테이너의 데이터가 완전히 같으면 true를 리턴

  7.  copy()

    -> 시퀀스 값을 복사

  8. swap()

    -> 값을 서로 바꾼다.

  9. iter_swap()

    -> 시퀀스 값을 서로 바꾼다

  10. fill()

    -> 시퀀스의 특정 위치에 값을 채운다.

  11. max()

    -> 주어진 입력중에서 가장 큰 값을 구한다. 기본 자료형 이외에도 연산자를 오버로딩한 클래스나 구조체를 입력으로 받을 수 있다.

  12. min()

    -> max()와 같지만 최소값을 반환한다

  13. insert()

    -> if( (*iter) == 3)                  //iter가 3과 같으면

    (*iter).insert(iter, 100);    //그 앞에 100을 넣어라.

  14. iter_swap()

    -> 시퀀스 값을 서로 바꾼다.

  15.  merge(src1의 시작주소, src1의 끝주소, src2의 시작주소, src2의 끝주소, dest의 시작주소)

    -> 두개의 저장소를 결합한다.

  16.  accumulate()

    -> 주어진 범위의 값을 더한다.

  17.  for_each(시작, 끝, 각각의element를 함수로 넘겨줌)

    ->각 콘테이너의 엘리먼트 값을 탐색

    ex) void AddNum(int num)

    {

    cout << (num+10) << endl;

    }

    void main()

    {

    int arr[5] = {1, 2, 3, 4, 5};

    for_each(arr, arr+5, AddNum);

    }

    -> +10씩 더해진 값이 나옴

'C++ > STL' 카테고리의 다른 글

iterateor  (0) 2012.08.13
STL 동적 할당 해제  (0) 2012.08.13
containers  (0) 2012.08.13
STL 이란 ?  (0) 2012.08.13