如何使用C++中的std::vector来实现一个二维数组的数据结构?
时间: 2024-10-29 19:16:51 浏览: 25
在C++中,`std::vector` 是一个动态数组容器,可以方便地处理一维数据。然而,为了实现二维数组(矩阵),我们可以嵌套两个 `std::vector`。下面是一个简单的例子:
```cpp
#include <vector>
// 定义一个二维向量模板,T 代表存储的数据类型
template<typename T>
class Matrix {
private:
std::vector<std::vector<T>> data; // 存储二维数据
public:
// 构造函数,设置行数和列数
Matrix(int rows, int cols) : data(rows, std::vector<T>(cols)) {}
// 添加元素到矩阵
void set(int row, int col, T value) {
if (row >= 0 && row < data.size() && col >= 0 && col < data[0].size()) {
data[row][col] = value;
} else {
throw std::out_of_range("Index out of range");
}
}
// 访问元素
T get(int row, int col) const {
if (row >= 0 && row < data.size() && col >= 0 && col < data[0].size()) {
return data[row][col];
} else {
throw std::out_of_range("Index out of range");
}
}
// 其他操作如获取大小、遍历等...
};
// 使用示例
int main() {
Matrix<int> matrix(3, 4); // 创建一个3x4的整数矩阵
matrix.set(1, 2, 100); // 设置位置(1,2)的值为100
int value = matrix.get(1, 2); // 获取位置(1,2)的值
return 0;
}
```
阅读全文