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]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)562
- 深度揭秘 Oracle Workarea Size Policy:参数调优助力数据库性能飞升(阿里通义 | 372点数解答 | 2024-05-13 10:54:45)349
- C++ 实现:轻松找出 n 个整数中的第二小值(字节豆包 | 260点数解答 | 2026-02-07 21:19:29)93
- C++实现找出数组中第二小的值(字节豆包 | 526点数解答 | 2026-03-27 19:40:26)67
- 找出数组中第二小值的C++代码实现(字节豆包 | 696点数解答 | 2026-03-28 19:40:41)63
- C++实现数组特定位置最小值交换并输出指定元素(字节豆包 | 607点数解答 | 2026-04-04 19:31:04)72
- C++实现找出n个整数中第二小的值(字节豆包 | 361点数解答 | 2026-04-06 20:52:02)78
- Python求数组中第二小值的三种实现方法及对比分析(DeepSeek | 1323点数解答 | 2026-05-09 19:32:54)60
- C++入门:选择查找法求数组中第二小的值(DeepSeek | 1089点数解答 | 2026-05-09 19:33:39)58
- C++实现找出数组中第二小的值(字节豆包 | 594点数解答 | 2026-05-09 20:38:56)45
- C++ 实现找出 n 个整数中第二小的值(字节豆包 | 533点数解答 | 2026-05-23 20:50:33)54
- C++实现数组第二小值查找算法及代码解析(DeepSeek | 1159点数解答 | 2026-08-08 11:23:28)14