酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

C++矩阵列交换实现与边界处理详解

## 🔄 解题思路 交换矩阵的两列,本质是交换每一行中索引为 `x-1` 和 `y-1` 的两个元素(因为数组下标从0开始)。直接逐行处理即可,无需额外矩阵。 ## ✒️ C++ 代码实现 ```cpp #include <iostream> #include <vector> using namespace std; int main() { int r, c; cin >> r >> c; vector<vector<int>> matrix(r, vector<int>(c)); for (int i = 0; i < r; ++i) { for (int j = 0; j < c; ++j) { cin >> matrix[i][j]; } } int x, y; cin >> x >> y; // 转换为0-based索引 x--; y--; // 逐行交换第x列和第y列 for (int i = 0; i < r; ++i) { swap(matrix[i][x], matrix[i][y]); } // 输出结果 for (int i = 0; i < r; ++i) { for (int j = 0; j < c; ++j) { if (j > 0) cout << " "; cout << matrix[i][j]; } cout << endl; } return 0; } ``` ## 📌 代码说明 - 使用二维 `vector` 存储矩阵,方便动态大小和随机访问。 - 读取列号后立即减1,确保索引正确。 - 交换操作直接在原矩阵上进行,节省空间。 - 输出时注意行末无多余空格,每行结束换行。 ## ⏱️ 复杂度分析 - 时间复杂度:O(r × c),需遍历整个矩阵完成交换和输出。 - 空间复杂度:O(r × c),存储矩阵数据,符合内存限制。 ######[AI问答 | 438点数解答 | 2026-08-20 22:03:15]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]