STL 제네릭 알고리즘 정리

accumulate()
기본적으로, 컨테이너의 요소들을 세 번째 인수로 지정한 초기값에 모두 더합니다. 기본 덧셈을 오버라이딩하기 위해 이항 연산을 넘길 수 있습니다.

#include <numeric>

iresult = accumulate(ia, ia + 9, 0);
iresult = accumulate(ilist.begin(), ilist.end(), 0, plus<int>());

adjacent_difference()
기본적으로 주어진 열 내에서 인접하는 각 요소의 차이를 값으로 하는 새로운 열을 생성합니다. {0, 1, 1, 2, 3, 5, 8}이 주어진다면 그 결과는 {0, 1, 0, 1, 1, 2, 3}이 됩니다. 기본 뺄셈을 오버라이딩하는 이항 연산을 넘길 수 있습니다. 예를 들면, times<int>는 {0, 0, 1, 2, 6, 15, 40}이라는 결과를 도출합니다. 세 번째 인수는 결과가 복사될 컨테이너를 가리키는 반복자입니다.

#include <numeric>

adjacent_difference(ilist.begin(), ilist.end(), iresult.begin());