'C++' std::accumulate

토스트·2024년 12월 25일

'C++' std::numeric

목록 보기
1/5

accumulate

template<class InputIt, class T>
T accumulate(InputIt first, InputIt last, T init); // constexpr since C++20

template<class InputIt, class T, class BinaryOp>
T accumulate(InputIt first, InputIt last, T init, BinaryOp op); // constexpr since C++20

: 주어진 범위의 요소들을 초기값에 누적하여 결과값을 반환하는 함수입니다. op를 제공하지 않으면 기본적으로 덧셈이 사용되며, op를 제공하면 다른 방식으로 결합할 수 있습니다.

  • first : 범위의 첫 번재 요소를 가리키는 입력 반복자
  • last : 범위의 마지막 번째 요소의 뒤를 가리키는 입력 반복자
  • init : 초기 값
  • op : 이항 연산자 (기본적으로 std::plus<>)

<example> | op를 제공하지 않을 때

#include <iostream>
#include <numeric>
#include <vector>

using namespace std;

int main() {
	vector<int> vec = {1, 2, 3, 4, 5};
    
    int sum = accumulate(vec.begin(), vec.end(), 0);
    
    cout << sum;
    
	return 0;
}

결과값

<example> | op를 제공할 때

#include <iostream>
#include <numeric>
#include <vector>

using namespace std;

int main() {
	vector<int> vec = {1, 2, 3, 4, 5};
    
    int mult = accumulate(vec.begin(), vec.end(), 1, [](int a, int b) {return a * b;});
    
    cout << mult;
    
	return 0;
}

결과값

0개의 댓글