💡 퀵 접속: cpp.kr/accumulate

accumulate

C++ 표준 라이브러리의 알고리즘으로, 컨테이너의 모든 요소를 순차적으로 결합하여 하나의 값으로 만듭니다.

기본 사용법

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

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    
    // 모든 요소의 합계 계산
    int sum = std::accumulate(numbers.begin(), numbers.end(), 0);
    
    std::cout << "숫자들의 합계: " << sum << std::endl;
    
    return 0;
}

실행 결과:

숫자들의 합계: 15

곱셈 연산

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

int main() {
    std::vector<int> numbers = {1, 2, 3, 4, 5};
    
    // 모든 요소의 곱 계산
    int product = std::accumulate(numbers.begin(), numbers.end(), 1,
        [](int a, int b) { return a * b; });
    
    std::cout << "숫자들의 곱: " << product << std::endl;
    
    return 0;
}

실행 결과:

숫자들의 곱: 120

문자열 연결

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

int main() {
    std::vector<std::string> words = {"Hello", ", ", "World", "!"};
    
    // 모든 문자열 연결
    std::string result = std::accumulate(words.begin(), words.end(), std::string());
    
    std::cout << "연결된 문자열: " << result << std::endl;
    
    return 0;
}

실행 결과:

연결된 문자열: Hello, World!

참고사항

  • accumulate는 numeric 헤더에 정의되어 있습니다.
  • 기본적으로 덧셈 연산을 수행합니다.
  • 세 번째 매개변수는 초기값입니다.
  • 네 번째 매개변수로 다른 연산을 지정할 수 있습니다.
  • 시간 복잡도는 O(n)입니다.
함수 설명
accumulate(first, last, init) 기본 덧셈 연산으로 요소들을 결합
accumulate(first, last, init, op) 지정된 연산으로 요소들을 결합