C++ 多维数组的相加减
时间: 2025-02-25 19:10:22 浏览: 35
实现多维数组的加法和减法
对于多维数组的操作,在C++中可以通过定义类来封装这些操作。下面展示了一个简单的二维数组加法和减法的例子:
#include <iostream>
#include <vector>
class MultiDimArray {
public:
std::vector<std::vector<int>> data;
MultiDimArray(int rows, int cols):data(rows, std::vector<int>(cols)) {}
void add(const MultiDimArray& other) {
for (size_t i = 0; i < data.size(); ++i) {
for (size_t j = 0; j < data[i].size(); ++j) {
data[i][j] += other.data[i][j];
}
}
}
void subtract(const MultiDimArray& other) {
for (size_t i = 0; i < data.size(); ++i) {
for (size_t j = 0; j < data[i].size(); ++j) {
data[i][j] -= other.data[i][j];
}
}
}
friend std::ostream &operator<<(std::ostream &os, const MultiDimArray &arr);
};
std::ostream &operator<<(std::ostream &os, const MultiDimArray &arr) {
for (const auto &row : arr.data) {
for (int val : row) os << val << ' ';
os << '\n';
}
return os;
}
int main() {
MultiDimArray mda1(2, 3), mda2(2, 3);
// Initialize values for demonstration purposes.
for (size_t i = 0; i < 2; ++i)
for (size_t j = 0; j < 3; ++j) {
mda1.data[i][j] = static_cast<int>(i * 3 + j);
mda2.data[i][j] = static_cast<int>(i * 3 + j + 1);
}
mda1.add(mda2);
std::cout << "After Addition:\n" << mda1;
mda1.subtract(mda2);
std::cout << "After Subtraction:\n" << mda1;
return 0;
}
上述代码展示了如何创建一个多维数组类MultiDimArray
,并实现了两个成员函数用于执行加法(add
)和减法(subtract
)操作[^1]。
多维数组的概念
多维数组可以视为一维数组的扩展形式。在声明时通过指定多个维度大小即可初始化不同阶数的数组。例如,三维整型数组可表示为 int array[depth][rows][columns];
形式。当涉及到更高层次的数据结构处理时,理解其秩(rank),即维度的数量变得尤为重要。
相关推荐


















