用C++写一个分组求和的函数
下面是用C++实现分组求和的函数的示例代码:
#include <iostream>
#include <vector>
#include <map>
std::map<int, int> groupSum(const std::vector<int>& nums) {
std::map<int, int> result;
for (int num : nums) {
result[num]++;
}
return result;
}
int main() {
std::vector<int> nums = {1, 2, 3, 2, 4, 1, 5, 2, 3, 4, 1, 5};
std::map<int, int> result = groupSum(nums);
for (const auto& pair : result) {
std::cout << pair.first << " : " << pair.second << std::endl;
}
return 0;
}
上述代码中,groupSum函数接受一个整数向量 nums 作为输入,并返回一个 std::map<int, int> 类型的结果。在函数中,使用了一个 std::map 容器来统计每个数字出现的次数。遍历输入向量 nums,并将每个数字作为键,出现的次数作为值存储在 std::map 中。最后,返回这个 std::map 结果。
在 main 函数中,我们定义了一个 std::vector 类型的 nums 向量,并初始化。然后,调用 groupSum 函数,将 nums 向量作为参数传递给它,得到一个 std::map 类型的结果 result。最后,使用一个循环遍历 result 中的键值对,并打印出每个数字及其出现的次数。
运行上述代码,将输出结果为:
1 : 3
2 : 3
3 : 2
4 : 2
5 : 2
这表示数字 1 出现了 3 次,数字 2 出现了 3 次,数字 3 出现了 2 次,以此类推
原文地址: http://www.cveoy.top/t/topic/iozU 著作权归作者所有。请勿转载和采集!