공부/C++(STL)
accumulate 함수
구로보루
2018. 1. 24. 17:00
accumulate 함수는 numeric 해더에 포함되어 있고 원소들의 합을 계산한다.
Type accumulate(
InputIterator _First,
InputIterator _Last,
Type _Val
);
Type accumulate(
InputIterator _First,
InputIterator _Last,
Type _Val,
BinaryOperation _Binary_op
);
이렇게 두가지 형태로 되있는데 후자는 아직 사용을 안해봤기에 추후에 추가하기로 하고,
전자의 경우 _First는 시작원소, _Last는 마지막 원소, _Val은 초기값이다.
1,2,3,4,5를 원소라 가지고 있는 vector v 를 가정할 때
accumulate(v.begin(), v.end(), 0) -> 결과값 15
accumulate(v.begin(), v.end(), 100) -> 결과값 115
가 된다.
추가로
cout
<< accumulate(istream_iterator<int>(cin), istream_iterator<int>(), 0)
<< endl;
의 방식을 사용하게 되면 Ctrl Z를 입력할 때 까지 공백기준의 모든 값을 더해 출력할 수 있다.
(위의 방식을 사용하려면 iterator 해더가 필요하다.