C++使用accumulate函数对数组进行快速求和
C++使用accumulate函数对数组进行快速求和
一、普通数组
1.1方法:
1.先求出数组的长度: int size = sizeof(arr) / sizeof(arr[0]);
2.使用指针作为迭代器调用accumulate函数:int sum = std::accumulate(arr, arr + size, 0);
3.注意带上头文件:“numeric”
1.2代码:
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<numeric>
using namespace std;
int main()
{int arr[] = { 1, 2, 3, 4, 5 };//用总的size除以单个的size得到普通数组的长度int size = sizeof(arr) / sizeof(arr[0]);// 使用指针作为迭代器//其中的0是代表带初值为0的累加int sum = std::accumulate(arr, arr + size, 0);cout << "数组的和为: " << sum << endl; // 输出15return 0;
}
二、vector动态数组
2.1方法:
1.直接使用vector自带的迭代器调用accumulate函数即可:sum = std::accumulate(ve.begin(), ve.end(), 0);
2.注意带上头文件:“numeric”
2.2代码:
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<numeric>
using namespace std;
int main()
{long long n = 0;long long sum;cin >> n;vector<long long>ve(n, 0);for (long long i = 0; i < n; i++){cin >> ve[i];}sum = std::accumulate(ve.begin(), ve.end(), 0);cout << "数组的和为: " << sum << endl; return 0;
}