vector二维数组 c++ 用法
时间: 2023-11-03 13:59:03 浏览: 402
vector可以用来代替二维数组,使用vector<vector<int>>来定义二维vector。可以使用operator[]函数来像数组一样操作二维vector,并且vector提供了边界检查和动态改变大小的功能。可以通过A.size()获取二维vector的元素个数,通过A[i].size()获取第i个vector元素的长度。
相关问题
C++vector二维数组
### C++ 中使用 `vector` 创建和操作二维数组
#### 使用 `vector<vector<int>>` 定义二维数组
在C++中,可以利用标准模板库中的`std::vector`来定义二维数组。通过创建一个包含多个`vector<int>`类型的外部向量,每个内部向量表示二维数组的一行。
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
// 初始化一个2×3的整型二维数组,所有元素初始值设为1
vector<vector<int>> matrix(2, vector<int>(3, 1));
cout << "Matrix content:" << endl;
for (size_t i = 0; i < matrix.size(); ++i) { // 遍历每一行
for (size_t j = 0; j < matrix[i].size(); ++j) { // 访问每行列元素
cout << matrix[i][j] << ' ';
}
cout << endl;
}
return 0;
}
```
此代码片段展示了如何声明并初始化一个具有特定大小和默认填充值得二维矩阵[^1]。
#### 获取二维数组尺寸
为了获得二维数组的具体维度(即行数和列数),可以直接调用`.size()`方法:
```cpp
// 假定matrix已经按照上述方式被正确定义过
int rows = matrix.size();
if (!rows) throw runtime_error("Empty matrix");
int cols = matrix[0].size();
cout << "Rows: " << rows << ", Columns: " << cols << endl;
```
这段程序说明了怎样安全地检索到二维数组的实际规模,并处理可能存在的空矩阵情况[^3]。
#### 动态调整二维数组大小
如果需要改变已有的二维数组结构,则可通过重新分配内存给各个子向量完成这一目标;也可以先清空再按需重建整个容器。
```cpp
void resize_matrix(vector<vector<int>>& mat, size_t new_rows, size_t new_cols){
mat.clear(); // 清除现有数据
// 构建新的指定规格的二维数组
mat.resize(new_rows);
for(auto& row : mat){
row.assign(new_cols, 0); // 将新加入的行设置成全零状态
}
}
resize_matrix(matrix, 4, 5);
for(const auto &row : matrix){ // 输出修改后的矩阵内容
copy(row.begin(), row.end(), ostream_iterator<int>(cout," "));
cout<<endl;
}
```
这里提供了一个函数用于灵活更改任意二维数组的空间布局,同时保持其作为参数传递的能力不变[^2]。
c++ vector 二维数组
要创建一个二维vector数组c,你可以使用以下方法:
1. 使用vector的构造函数初始化二维数组c,并指定初始值为0。例如,使用以下代码可以创建一个行数为row,列数为column的二维数组,并将所有元素初始化为0:
vector<vector<int>> c(row, vector<int>(column, 0));
2. 使用push_back()函数逐行添加向量。例如,使用以下代码可以创建一个空的二维数组c,并逐行添加向量:
vector<vector<int>> c;
vector<int> row1;
row1.push_back(0);
row1.push_back(1);
row1.push_back(2);
c.push_back(row1);
vector<int> row2;
row2.push_back(3);
row2.push_back(4);
row2.push_back(5);
c.push_back(row2);
3. 使用索引方式直接操作二维数组。例如,使用以下代码可以创建一个空的二维数组c,并直接通过索引方式添加元素:
vector<vector<int>> c;
c.push_back(0);
c.push_back(1);
c.push_back(2);
c.push_back(3);
c.push_back(4);
c.push_back(5);
请注意,在使用索引方式操作二维数组时,确保已经为每一行创建了向量。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [c++---vector二维数组](https://blog.csdn.net/m0_50046535/article/details/125344884)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [C++--vector数组使用](https://blog.csdn.net/JUST__Tw/article/details/112221317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文
相关推荐
















