用vector创建二维数组已知行数列数不确定
时间: 2024-10-13 09:18:41 浏览: 18
在C++中,你可以使用`std::vector`来动态创建二维数组,特别是当你不知道具体的行数和列数时。`std::vector`的灵活性允许你在运行时添加或删除元素。以下是创建二维`vector`的一种常见做法:
```cpp
#include <vector>
// 定义一个二维向量模板,其中T是你想要存储的数据类型
template <typename T>
class DynamicArray {
public:
// 初始化一个新的二维向量,每行默认为0长度的列
DynamicArray(size_t initialRows) : rows(initialRows), data(new std::vector<T>[initialRows]) {}
// 添加新行
void addRow() {
data.push_back(std::vector<T>());
}
// 获取或设置特定位置的元素(注意索引从0开始)
T& operator()(size_t row, size_t col) {
return data[row][col];
}
const T& operator()(size_t row, size_t col) const {
return data[row][col];
}
private:
size_t rows; // 当前行数
std::vector<std::vector<T>>* data; // 指向二维向量的动态内存
};
// 使用示例
int main() {
DynamicArray<int> arr(5); // 初始有5行
// 动态增加行
for (size_t i = 0; i < 3; ++i) {
arr.addRow();
}
// 访问和操作元素
arr(0, 0) = 1;
arr(2, 2) = 4;
//
阅读全文