c++构造一个二维数组,并以矩阵的形式输出
时间: 2023-05-16 09:05:03 浏览: 142
好的,以下是构造一个二维数组并以矩阵的形式输出的代码示例:
```c
#include <stdio.h>
int main() {
int arr[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果为:
```
1 2 3
4 5 6
7 8 9
```
希望能对您有所帮助。
相关问题
C++中用二维数组构造矩阵类
在C++中,你可以直接使用二维数组来实现一个基础的矩阵类,但这通常不是一个好的设计选择,因为二维数组会固定大小,不适合动态调整。如果你还是想使用二维数组,可以这样做:
```cpp
#include <iostream>
class SimpleMatrix {
public:
// 定义矩阵的行数和列数
int rows;
int cols;
// 二维数组作为矩阵的数据部分
double data[ROW_SIZE][COL_SIZE];
// 构造函数,传入初始的行数和列数
SimpleMatrix(int rows_, int cols_)
: rows(rows_), cols(cols_) {
// 检查传入的行数和列数是否合法
if (rows_ <= 0 || cols_ <= 0) {
throw std::invalid_argument("Rows and columns must be positive.");
}
// 初始化所有元素为0
for (int i = 0; i < rows_; ++i)
for (int j = 0; j < cols_; ++j)
data[i][j] = 0.0;
}
// 获取和设置元素
double& operator()(int row, int col) {
return data[row][col];
}
private:
static const int ROW_SIZE = 5; // 这里假设固定的大小,实际项目应避免硬编码
static const int COL_SIZE = 5;
};
// 示例
int main() {
SimpleMatrix matrix(3, 4);
return 0;
}
```
然而,在实际的C++开发中,更推荐使用`std::vector<std::vector<double>>`或其他容器来构建动态大小的矩阵,以支持动态分配和管理。
c++矩阵类用一维数组存储矩阵元素实现矩阵的转置
可以通过将二维数组展开成一维数组,然后利用下标计算实现矩阵的转置,代码如下:
```c++
class Matrix {
private:
int rows, cols;
int *data; // 一维数组存储矩阵元素
public:
// 构造函数和析构函数
Matrix(int r, int c) : rows(r), cols(c) {
data = new int[rows * cols];
}
~Matrix() {
delete[] data;
}
// 计算一维数组下标
int index(int r, int c) {
return r * cols + c;
}
// 重载运算符
Matrix operator~() {
Matrix trans(cols, rows); // 新建一个转置矩阵
for (int i = 0; i < rows; i++)
for (int j = 0; j < cols; j++)
trans.data[trans.index(j, i)] = data[index(i, j)]; // 转置
return trans;
}
};
```
其中,`index`方法计算一维数组下标,用法如下:
```c++
Matrix m1(3, 2);
// 初始化矩阵元素
Matrix m2 = ~m1; // 转置矩阵
```
阅读全文