>백엔드 개발 >C++ >C에서 std::Vector의 요소를 합산하는 가장 좋은 방법은 무엇입니까?

C에서 std::Vector의 요소를 합산하는 가장 좋은 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-26 11:16:10574검색

What are the Best Ways to Sum the Elements of a std::vector in C  ?

std::Vector의 요소를 합산하는 대체 방법

std::Vector에 있는 모든 요소의 합을 구하는 것은 여러 효율적인 접근 방식을 사용하는 일반적인 작업입니다. 다음은 몇 가지 옵션입니다.

클래식 C 03 기법

For 루프:

int sum_of_elems = 0;
for (std::vector<int>::iterator it = vector.begin(); it != vector.end(); ++it)
     sum_of_elems += *it;

표준 알고리즘:

#include <numeric>

sum_of_elems = std::accumulate(vector.begin(), vector.end(), 0);

참고: 마지막 인수 유형에 따라 결과 유형이 결정됩니다.

최신 C 접근 방식(C 11 )

자동형 처리:

#include <numeric>

sum_of_elems = std::accumulate(vector.begin(), vector.end(),
                                decltype(vector)::value_type(0));

std::for_each:

std::for_each(vector.begin(), vector.end(), [&](int n) {
     sum_of_elems += n;
});

범위 기반 For 루프:

for (auto& n : vector)
     sum_of_elems += n;

C 17 향상된 기능

std::reduce:

#include <numeric>

auto result = std::reduce(v.begin(), v.end());

std::reduce는 결과 유형 추론을 처리하고 대규모 컬렉션에 대한 병렬 실행 기능을 제공합니다.

위 내용은 C에서 std::Vector의 요소를 합산하는 가장 좋은 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.