🔎 accumulate()

배열의 합을 구해주는 함수이다.

template<class InputIt, class T>
T accumulate(InputIt first, InputIt last, T init);

배열 내 [first,last) 범위에 있는 요소들의 합을 구한다.
init: 누적의 시작값 → 보통 0으로 설정

사용 예시

#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> a { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    int b[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

    //vector
    cout << "vector의 합은 " << accumulate(a.begin(), a.end(), 0) << "\n";
    cout << "init이 100이라면 vector의 합은 " << accumulate(a.begin(), a.end(), 100) << "\n\n";
    //Array
    cout << "배열의 합은 " << accumulate(b, b + sizeof(b) / sizeof(int), 0) << "\n";
    cout << "init이 100이라면 배열의 합은 " << accumulate(b, b + sizeof(b) / sizeof(int), 100) << "\n";

    return 0;
}

출력 결과

vector의 합은 55
init이 100이라면 vector의 합은 155

배열의 합은 55
init이 100이라면 배열의 합은 155

🔎 max_element(), min_element()

max_element(): 배열 내의 가장 요소를 찾는 함수
min_element(): 배열 내의 가장 작은 요소를 찾는 함수

해당 요소가 존재하는 이터레이터를 반환하며 같은 값이 2개 이상 존재할 경우
가장 앞에 있는 이터레이터를 반환한다.

이터레이터를 반환하므로 해당 값을 사용하고 싶은 경우 역참조(*)를 사용하면 된다.

사용 예시

#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> a { 4, 1, 5, 7, 8, 2, 1, 4, 8 };

    auto max = max_element(a.begin(), a.end());
    cout << "가장 큰 요소는 " << *max << "이며 " << max - a.begin() << "번째 인덱스에 존재한다.\n";

    auto min = min_element(a.begin(), a.end());
    cout << "가장 작은 요소는 " << *min << "이며 " << min - a.begin() << "번째 인덱스에 존재한다.\n";

    return 0;
}

출력 결과

가장 큰 요소는 8이며 4번째 인덱스에 존재한다.
가장 작은 요소는 1이며 1번째 인덱스에 존재한다.

태그:

카테고리:

업데이트:

댓글남기기