accumulate函数是C++ numeric库中的一个函数,主要用来对指定范围内元素求和,但也自行指定一些其他操作,如范围内所有元素相乘、相除等。
使用前需要引用头文件:
#include <numeric>
- 函数共有四个参数,其中前三个为必须,第四个为非必需。
- 若不指定第四个参数,则默认对范围内的元素进行累加操作。
计算数组中所有元素的和:
vector<int> arr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};int sum = accumulate(arr.begin(), arr.end(), 0); // 初值0 + (1 + 2 + 3 + 4 +... + 10)cout << sum << endl; // 输出55
例题:最富有客户的资产总量
遍历即可。
class Solution {
public:int maximumWealth(vector<vector<int>>& accounts) {int maxWealth = INT_MIN;for (auto &account : accounts) {maxWealth = max(maxWealth, accumulate(account.begin(), account.end(), 0));}return maxWealth;}
};
注:
INT_MIN和INT_MAX定义在#include <climits>
中,且INT_MAX为 2 31 − 1 2^{31}-1 231−1 ,即 2147483647 2147483647 2147483647 ; INT_MIN为 − 2 31 -2^{31} −231 即 2147483648 2147483648 2147483648。
更多请参考:C++ accumulate函数介绍、具体案例