c++ - 逐列添加嵌套向量
问题描述
所以可以说我有嵌套向量
6 7 8 9 10
5 6 7 8 9
4 5 6 7 8
10 11 12 12 12
它们位于数据嵌套向量中,我想逐列添加它们并将它们推送到 sumV 向量中。
for(int i = 0; i < data.size(); i++){
sum = 0;
for(int j = 0; j <= i; j++ ){
sum = sum + j;
}
sumV.push_back(sum);
}
但它似乎给了我错误的价值观。
解决方案
假设所有嵌套向量的大小相同,您可以在循环中使用std::accumulate获得列的总和。
#include <vector>
#include <numeric>
#include <iostream>
int main()
{
// Test case
std::vector<std::vector<int>> v = {{6, 7, 8, 9, 10},
{5, 6, 7, 8, 9},
{4, 5, 6, 7, 8},
{10, 11, 12, 12, 12}};
// The final sum vector
std::vector<int> sum;
// loop for each column
for(size_t i = 0; i < v[0].size(); ++i)
{
// add up the i'th column and store in sum
sum.push_back(std::accumulate(v.begin(), v.end(), 0,
[&](int total, std::vector<int>& current)
{ return current[i] + total; }));
}
// Output results
for(auto val : sum)
std::cout << val << "\n";
}
输出:
25
29
33
36
39
推荐阅读
- javascript - 如何在正在运行的 ajax 调用之间打开 URL/链接并销毁所有正在运行的 ajax 调用?
- python - 在 Python 中替换列表中连续和重复的所有元素
- javascript - 如何使用 XMLHttpRequest javascript 和 PHP 发布 blob 和字符串
- php - 试图只显示表格的最后 4 个结果
- microsoft-cognitive - 如何在 V3 Text Translator 中检索 1 个提交项目的多个翻译选项?
- delphi - 如何找到 TMenuItem 的 TMainMenu 父级?
- powershell - Powershell - 为 excel 创建进度条
- android - 渲染线程 SIGABRT
- google-dfp - DFP 在 X 秒后刷新广告
- java - 检查java变量是否为null,如果是则设置它