공부/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 해더가 필요하다.