C++对vector二维数组的初始化操作
时间: 2024-09-24 09:17:32 浏览: 71
在C++中,你可以使用多种方式来初始化一个二维`vector`,即动态创建的类似于数组的数组。以下是几种常见的初始化方法:
1. **静态初始化**:
```cpp
std::vector<std::vector<int>> matrix(3, std::vector<int>(4)); // 创建一个3x4的矩阵,所有元素初始值为空
```
这里,外层的括号用于指定行数,内层括号用于指定列数,元素默认初始化为未初始化的默认值。
2. **直接初始化**:
```cpp
std::vector<std::vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // 创建一个3x3的矩阵,填充给定值
```
通过花括号嵌套列表,可以直接为每个元素设置初始值。
3. **循环初始化**:
```cpp
int values[] = {1, 2, 3, 4, 5, 6};
std::vector<std::vector<int>> matrix(3, values, 2); // 创建一个3x2的矩阵,从values数组开始取值
```
可以利用数组或已有数据源来初始化部分或全部元素。
4. **构造函数初始化**:
对于自定义类型的元素,可以使用构造函数来初始化:
```cpp
struct MyType {
int x, y;
MyType(int x, int y) : x(x), y(y) {}
};
std::vector<std::vector<MyType>> myMatrix = {
{MyType(1, 1), MyType(1, 2)},
{MyType(2, 1), MyType(2, 2)}
};
```
以上都是创建二维`vector`的不同方式。记住,在处理二维`vector`时,要注意内存管理,特别是动态分配的内存。
阅读全文