C++ Espresso 제15장 STL 알고리즘
STL 알고리즘을 사용하면 쉽게 탐색이나 정렬을 수행할 수 있습니다. 이번 장에서 학습할 내용 STL 알고리즘을 사용하면 쉽게 탐색이나 정렬을 수행할 수 있습니다. 반복자 탐색 알고리즘 비교 알고리즘 초기화 알고리즘 수치 알고리즘 함수 객체
STL 알고리즘 STL 기반의 탐색(searching), 정렬(sorting), 계수(counting) 알고리즘
STL 알고리즘의 분류
불변경 알고리즘
변경 알고리즘
반복자 컨테이너에서 다음 요소를 가리키기 위한 ++ 연산자 컨테이너에서 이전 요소를 가리키기 위한 -- 연산자 두개의 반복자가 같은 요소를 가리키고 있는 지를 확인하기 위한 ==와 != 연산자 반복자가 가리키는 요소의 값을 추출하기 위한 역참조 연산자 * v.begin() 함수는 컨테이너 v에서 첫 번째 요소를 반환한다. v.end() 함수는 컨테이너 v에서 마지막 요소를 지났는지를 나타내는 값을 반환한다.
예제
실행 결과
반복자의 종류 전향 반복자(forward iterator): ++ 연산자만 가능하다. 양방향 반복자(bidirectional iterator): ++ 연산자와 -- 연산자가 가능하다. 무작위 접근 반복자(random access iterator): ++ 연산자와 -- 연산자, [ ] 연산자가 가능하다.
예제
역순 반복자
공통 알고리즘
탐색 알고리즘: find()
find_if()
find_if()
search()
search()
count()
binary_search() 이진 탐색: 정렬된 리스트에서 만약 찾고자 하는 원소가 중간 원소보다 크면 찾고자 하는 원소는 뒷부분에 있고 반대이면 앞부분에 있다.
예제
예제
비교 알고리즘: equal()
예제
초기화 알고리즘: fill()
copy()
for_each()
transform()
remove()
sort()
sort()
함수 객체 함수 객체
내장된 함수 객체
예제
Q & A