본문 바로가기

Language/C++

[C++] STL - 읽기 알고리즘 함수 (find, for_each)

728x90
반응형

STL의 목적은 일반적인 알고리즘에 대한 효율적인 구현을 제공하는 것이다. 따라서 STL은 이러한 알고리즘을 STL 알고리즘 함수나 STL 컨테이너의 멤버 함수를 사용하여 구현하고 있다.

 

STL 알고리즘은 기능별로 다음과 같이 구분할 수 있다.

  1. 읽기 알고리즘 (algorithm 헤더 파일)
  2. 변경 알고리즘 (algorithm 헤더 파일)
  3. 정렬 알고리즘 (algorithm 헤더 파일)
  4. 수치 알고리즘 (numeric 헤더 파일)

이 글에서는 읽기 알고리즘 함수에 대해 알아보자.

읽기 알고리즘 함수는 컨테이너를 변경하지 않으며, 컨테이너의 지정된 범위에서 특정 데이터를 읽기만 하는 함수이다. STL에서 제공하는 대표적인 읽기 알고리즘 함수에는 find(), for_each()가 있다.

 

find()

#include <algorithm>

template <class InputIterator, class T>
InputIterator find(InputIterator first, InputIterator last, const T& val);

범위 안에 원하는 값을 찾는다. first부터 last 전까지의 원소들 중 val과 일치하는 첫 번째 원소를 가리키는 반복자를 리턴한다. 만약 일치하는 원소를 찾지 못할 경우 last를 리턴한다.

 

 

for_each()

#include <algorithm>

template <class InputIterator, class Function>
Function for_each(InputIterator first, InputIterator last, Function fn);

범위 내(first부터 last 전까지) 원소들 각각에 대해 함수 fn을 실행한다. 함수의 리턴값은 무시된다.

for문으로 만들기엔 귀찮거나 손이 많이 가는 반복문을 만드는 경우에 사용한다.

 

728x90
반응형