二维数组中一维数组的求和
时间: 2025-02-14 14:15:14 浏览: 37
### 计算二维数组中每个一维数组的元素之和
对于不同编程语言中的实现方式有所不同,以下是几种常见编程语言的具体做法。
#### Python 实现
Python 提供了简洁的方式来处理这类问题。通过列表推导式与内置 `sum` 函数相结合,可以轻松完成此任务:
```python
def sum_of_subarrays(matrix):
return [sum(row) for row in matrix]
# 示例用法
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
result = sum_of_subarrays(matrix)
print(result) # 输出: [6, 15, 24]
```
这种方法利用了 Python 的迭代器特性,使得代码既高效又易读[^5]。
#### Java 实现
在 Java 中,则可以通过增强型for循环遍历整个二维数组,并逐行累加各列数值至临时变量,在每次内层循环结束后将该临时变量加入到结果集中:
```java
public class Main {
public static void main(String[] args){
int[][] matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
List<Integer> sums = new ArrayList<>();
for (int[] row : matrix){
int sum = Arrays.stream(row).sum();
sums.add(sum);
}
System.out.println(sums); // 输出: [6, 15, 24]
}
}
```
这里采用了更现代的方式——流(Stream API),它不仅简化了语法结构还提高了性能表现[^1].
#### C++ 实现
而在 C++ 当中,同样也可以借助标准模板库(STL)提供的算法来解决问题:
```cpp
#include <iostream>
#include <vector>
using namespace std;
void calculateRowSums(const vector<vector<int>>& matrx,vector<int>& res){
transform(matrx.begin(),matrx.end(),back_inserter(res),
[](const auto& v){return accumulate(v.cbegin(),v.cend(),0);});
}
// 测试函数
int main(){
vector<vector<int>> matrix{{1,2,3},{4,5,6},{7,8,9}};
vector<int> results;
calculateRowSums(matrix,results);
cout << "[";
copy(results.begin(),results.end()-1,
ostream_iterator<int>(cout,", "));
cout << results.back() << "]";
return 0; // 输出:[6, 15, 24]
}
```
这段代码展示了如何运用 STL 容器类 `std::vector`, 并配合 lambda 表达式的灵活性实现了相同的功能[^3].
阅读全文
相关推荐


















