用vector定义二维动态数组怎么做
时间: 2024-12-23 15:26:37 浏览: 16
在C++中,可以使用`std::vector`来动态地创建二维数组,也称为矩阵。每个内部的`vector`代表一行数据,而外部的`vector`则管理所有行。下面是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
// 定义二维向量模板
template<int Rows, int Cols>
class DynamicMatrix {
public:
std::vector<std::vector<int>> data; // 存储二维数据
// 构造函数,初始化指定大小的零矩阵
DynamicMatrix() : data(Rows, std::vector<int>(Cols, 0)) {}
// 访问元素
int& operator()(int row, int col) {
return data[row][col];
}
// 简单的打印矩阵
void print() {
for (const auto& row : data) {
for (const auto& element : row) {
std::cout << element << " ";
}
std::cout << "\n";
}
}
};
int main() {
// 创建一个5x3的动态矩阵
DynamicMatrix<5, 3> matrix;
// 使用索引来访问并修改元素
matrix(0, 0) = 1;
matrix(2, 1) = 4;
// 打印矩阵
matrix.print();
return 0;
}
```
在这个例子中,`DynamicMatrix`模板类允许你根据需要创建不同尺寸的矩阵,并通过`operator()`重载来方便地访问元素。当你不再需要这个动态矩阵时,它的内存会自动释放。
阅读全文