You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用std::for_each实现C++ std::vector矩阵的列遍历求和

列求和的std::for_each实现方法

完全可以用类似写法实现列遍历求和,原理是遍历矩阵的每一行,取每行目标列的元素累加即可,前提是保证矩阵所有行的长度大于目标列索引,避免越界。

实现代码

int col_sum = 0;
int target_col = 1; // 替换为你需要求和的目标列索引
// 边界校验可选,建议加上避免越界
if (!matrix_.empty() && target_col < matrix_[0].size()) {
    std::for_each(matrix_.begin(), matrix_.end(), [&](const std::vector<int>& row) {
        col_sum += row[target_col];
    });
}

说明

  • 和行求和的逻辑刚好对应:行求和是遍历单行的所有元素累加,列求和是遍历所有行,取每行对应目标列的元素累加
  • 必须保证矩阵是规则结构(所有行的长度一致),如果存在行长度小于目标列索引的情况,会触发未定义行为
  • 如果需要统计所有列的和,只需要在外层套一层遍历列索引的循环即可

内容的提问来源于stack exchange,提问作者Andreimek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 02:06:08