부동 소수점(float, double) 타잎의 배열이나 stl 컨테이너의 값을 sum할 때 유의사항.
루프를 돌면서 배열의 값을 다 더하는 것과 std::accumulate 의 결과가 다를경우가 발생할 수 있다.
아래 링크를 통해 결과 확인이 가능하다.
이것 때문에 디버깅 하느라 꽤나 애먹었음. -_-;
그 이유는 accumulate의 3번째 인자인 init value의 형(type) 때문.
http://stackoverflow.com/questions/3604478/c-stdaccumulate-doesnt-give-the-expected-sum
template을 이용한 코딩을 할 때는
3번째 인자인 init value에 0을 T로 타잎 캐스팅 하면 됨. static_cast<T>(0)