algorithm
Posted 2012. 8. 13. 22:13container가 가진 데이터를 다양한 방법으로 처리하는 프로시져다
그렇지만 container의 멤버함수는 아니고 템플릿 함수들이다.
#include <algorithm>
-
find(시작주소, 끝주소, 찾을값)
->주어진 원소와 같은것으로 판단되는 원소를 검색하는 선형 검색 알고리즘. 기본적으로 == 연산자를 사용
->동일한 최초의 값을 리턴
ex) int arr[5] = {1, 2, 3, 4, 5};
int* k = find(arr, arr+5, 3);
cout<<(*k)<<endl; => 3
-> 반환값 : 찾는 값의 주소
-
sort(시작, 끝)
-> 정렬 알고리즘(지정한 순서로 정렬)
ex) int arr[5] = {1, 5, 2, 3, 4};
sort(arr, arr+5); //1,2,3,4,5 순으로 정렬
-
make_heap()
-> 어떤 구간[S,E)를 힙으로 만든다
-
count(시작주소, 끝주소, 찾을값)
-> 엘리먼트의 갯수를 리턴
-> 반환값 : 찾는 값의 갯수 (갯수만큼 count가 ++됨)
-
search(B의시작주소, B의 끝주소, A의시작주소, A의 끝주소)
-> 어떤 한 container(A)의 연속적은 패턴(값들)을 다른 한 container(B)에서 찾아본다
-> 반환값 : 최초에 발견된 값들의 B의 시작주소
-
equal()
-> 두 콘테이너의 데이터가 완전히 같으면 true를 리턴
-
copy()
-> 시퀀스 값을 복사
-
swap()
-> 값을 서로 바꾼다.
-
iter_swap()
-> 시퀀스 값을 서로 바꾼다
-
fill()
-> 시퀀스의 특정 위치에 값을 채운다.
-
max()
-> 주어진 입력중에서 가장 큰 값을 구한다. 기본 자료형 이외에도 연산자를 오버로딩한 클래스나 구조체를 입력으로 받을 수 있다.
-
min()
-> max()와 같지만 최소값을 반환한다
-
insert()
-> if( (*iter) == 3) //iter가 3과 같으면
(*iter).insert(iter, 100); //그 앞에 100을 넣어라.
-
iter_swap()
-> 시퀀스 값을 서로 바꾼다.
-
merge(src1의 시작주소, src1의 끝주소, src2의 시작주소, src2의 끝주소, dest의 시작주소)
-> 두개의 저장소를 결합한다.
-
accumulate()
-> 주어진 범위의 값을 더한다.
-
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 |
- Filed under : C++/STL