Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ STL의 배열 합계

<시간/>

배열 동일한 데이터 유형의 요소를 연속 메모리 위치에 저장하는 선형 데이터 구조입니다.

배열 합은 배열의 모든 요소의 합입니다.

C++ 프로그래밍 언어에는 배열 합계를 찾을 수 있는 여러 메서드가 있습니다.

고전적인 방법

배열의 모든 요소의 합을 찾는 기본 방법은 배열의 요소를 반복하고 요소의 값을 sum 변수에 추가하는 것입니다.

알고리즘

Step 1 : For i from 0 to n-1, follow step 2 ;
Step 2 : sum = sum + arr[i]
Step 3 : print sum.

예시

#include <iostream>
using namespace std;
int main (){
   int arr[] = { 2, 5, 7, 8, 2, 6, 9 };
   int n = 7, sum = 0;
   for(int i = 0; i<n ; i++){
      sum+=arr[i];
   }
   cout<<"The array sum is "<<sum;
   return 0;
}

출력

The array sum is 39

누적 방법 사용

배열 합을 찾는 데 사용되는 C++의 누적 방법. 이 함수는 C++의 숫자 라이브러리에서 액세스할 수 있습니다.

구문

accumulate(array_name , array_name+length , sum);

예시

#include <iostream>
#include <numeric>
using namespace std;
int main (){
   int arr[] = { 2, 5, 7, 8, 2, 6, 9 };
   int n = 7, sum = 0;
   sum = accumulate(arr, arr+n, sum);
   cout<<"The array sum is "<<sum;
   return 0;
}

출력

The array sum is 39

벡터 합 사용

벡터에도 누적 기능을 사용할 수 있습니다. 벡터 형식인 배열의 합을 반환합니다.

예시

#include <iostream>
#include <vector>
#include <numeric>
using namespace std;
int arraySum(vector<int> &v){
   int initial_sum = 0;
   return accumulate(v.begin(), v.end(), initial_sum);
}
int main(){
   vector<int> v{12, 56, 76, 2, 90 , 3} ;
   int sum = 0;
   sum=accumulate(v.begin(), v.end(), sum);
   cout<<"The sum of array is "<<sum;
   return 0;
}

출력

The sum of array is 239