변경 불가 순차 알고리즘; Nonmutatinng Sequence Algorithm
변경 가능 순차 알고리즘; Mutating Sequence Algorithm
정렬 관리 알고리즘; Sorting Related Algorithm
범용 수치 알고리즘 Generalized Numeric Algorithm
여러 종류의 알고리즘 함수가 있지만 사용 방법은 유사하다.
컨테이너에 특정 값이 존재한는지 찾는 함수
// find(첫번째 위치, 마지막 다음 위치, 찾는 값)
find(vec.begin(), vec.end(), 30);
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int arr[] = {10, 20, 30, 40, 50};
vector<int> vec(&arr[0], &arr[5]);
vector<int>::iterator it;
if (find(vec.begin(), vec.end(), 30) != vec.end())
{
cout << "검색 성공" << endl;
}
else
{
cout << "검색 실패" << endl;
}
return 0;
}
UniOp for_each(
InputIterator first,
InputIterator last,
UniOp op
)
UniOp op
콜백함수로 받는 형태
아래의 코드의 모든 요소를 출력할 때 반복문으로 인덱스를 통해 접근하는 것이 아닌 반복자를 통한 접근하기
vector <string> vs;
// string 타입을 담을 수 있는 벡터 객체
vs.push_back("인성 교육의 중요성");
vs.push_back("날이 좋아서 날이 적당해서");
vs.push_back("낮잠을 잤습니다.");
vs.push_back("얼마나 좋아. 집도 사고, 땅도 사고");
void func(string str) {
cout << str << endl;
}
int main()
{
for_each(vs.begin(), vs.end(), func);
// 콜백함수 func는 호출이 아닌 "등록" 개념 => 순회할 때 마다 호출되는 것
}