std::Vector의 요소를 합산하는 효율적인 방법
std 내 요소의 누적 합계를 확인해야 하는 시나리오에서 ::벡터에는 여러 가지 효율적인 접근 방식이 있습니다.
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);
참고: 마지막 인수 유형에 따라 초기 값과 결과 유형이 결정됩니다. 부동 소수점 입력의 경우 0 대신 0.0을 사용하세요.
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 (auto& n : vector) sum_of_elems += n;
C 17 이상 추가:
std:: 자동 결과로 감소 유형:
#include <numeric> auto result = std::reduce(v.begin(), v.end());
이 함수의 오버로드는 광범위한 컬렉션에 대한 병렬 처리를 가능하게 합니다.
위 내용은 C에서 std::Vector의 요소를 합산하는 효율적인 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!