c++ vector二维数组 取一段给另一个 vector
时间: 2024-07-23 17:01:28 浏览: 64
在C++中,如果你有一个二维向量(vector<vector<T>>),想要从中取出一部分并赋值给另一个二维向量,你可以按照以下步骤操作:
假设你的二维向量`matrix`是一个`vector<vector<int>>`类型,你想取`matrix`的一部分,比如从第`startRow`行到第`endRow`行,第`startCol`列到第`endCol`列的所有元素。你可以这样做:
```cpp
std::vector<std::vector<int>> subMatrix; // 定义新的子矩阵
int startRow, endRow, startCol, endCol; // 起始和结束的行和列索引
// 确保边界不会越界
if (startRow >= 0 && endRow < matrix.size() && startCol >= 0 && endCol < matrix.size()) {
for (int i = startRow; i <= endRow; ++i) {
std::vector<int> rowSubMatrix(matrix[i].begin() + startCol, matrix[i].begin() + endCol + 1); // 注意这里加1是因为endCol是非inclusive的
subMatrix.push_back(rowSubMatrix);
}
} else {
// 处理边界错误或其他异常情况
}
// now subMatrix存储了原矩阵的一部分
```
阅读全文