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

使用 accumulate 方法

C++ 中的accumulate() 方法用於查詢陣列的和。此函式可以從C++ 中的 numeric 庫訪問。

語法

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

使用向量求和

你也可以對向量使用accumulate() 函式。它將返回陣列(向量形式)的和。

示例

 線上演示

#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

更新於:2023年9月14日

33K+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.