그냥 게임개발자

accumulate() - 배열의 합 구하기 본문

C++ 나만의 복습

accumulate() - 배열의 합 구하기

sudoju 2024. 4. 12. 22:51

배열의 합을 구하는 방법은 우리가 어릴 때 많이 배웠습니다.

 

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

using namespace std;

int main()
{
    int sum = 0;
    vector <int> v = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    for (vector<int>::iterator it = vec.begin(), it != vec.end(); ++it)
    {
        sum += *it;
    }
    
    cout << sum << '\n';
    
    return 0;
}

 

음음 55가나올겁니다.

 

다만 더 쉽게 활용하는 함수가 있습니다.

 

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

using namespace std;

int main()
{
    vector<int> vec = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    
    int sum = accumulate(vec.begin(), vec.end(), 0);
    
    cout << sum << '\n';
    
    return 0;
}

함수하나로 vector vec의 요소들의 합을 쉽게 구할 수 있습니다.

 

다만 합을 구할 때 주의해야 할 것은 accumulate의 반환값은 initial value(초기값 문제)의 타입을 따라갑니다.

그래서 어떠한 경고도 띄우지 않고 자동으로 캐스팅이 되기 때문에 주의할 필요가 있습니다.

 

무엇이든 될 수 있어!

 

 

'C++ 나만의 복습' 카테고리의 다른 글

min_element()  (0) 2024.04.12
max_element()  (0) 2024.04.12
lower_bound() & upper_bound()  (0) 2024.04.12
stable_sort()  (1) 2024.04.07
sort()  (0) 2024.04.07