酷代码 AI
菜单
服务商

C++ 实现 5×5 矩阵两行交换:代码、解释与复杂度分析

```cpp #include <iostream> #include <vector> int main() { // 定义一个 5x5 的二维向量来存储矩阵 std::vector<std::vector<int>> matrix(5, std::vector<int>(5)); // 读取矩阵的每一行元素 for (int i = 0; i < 5; ++i) { for (int j = 0; j < 5; ++j) { std::cin >> matrix[i][j]; } } // 读取要交换的两行的行号 m 和 n int m, n; std::cin >> m >> n; // 由于输入的行号是从 1 开始的,转换为 0 索引 --m; --n; // 交换第 m 行和第 n 行 std::swap(matrix[m], matrix[n]); // 输出交换后的矩阵 for (int i = 0; i < 5; ++i) { for (int j = 0; j < 5; ++j) { if (j > 0) { std::cout << " "; } std::cout << matrix[i][j]; } std::cout << std::endl; } return 0; } ``` 代码解释 1. 矩阵存储:使用一个二维向量 `matrix` 来存储 5x5 的矩阵,它的大小为 5 行 5 列。 2. 读取矩阵元素:通过两层嵌套的 `for` 循环,依次读取矩阵每一行的元素并存储到 `matrix` 中。 3. 读取要交换的行号:读取输入的要交换的两行的行号 `m` 和 `n`,并将其转换为 0 索引(因为向量的索引从 0 开始)。 4. 交换行:使用 `std::swap` 函数交换 `matrix` 中第 `m` 行和第 `n` 行的元素。 5. 输出交换后的矩阵:再次使用两层嵌套的 `for` 循环,输出交换后的矩阵,每行元素之间用空格分隔,每行末尾换行。 复杂度分析 - 时间复杂度:$O(1)$,因为矩阵的大小是固定的 5x5,所有操作的时间复杂度都是常数级的。 - 空间复杂度:$O(1)$,主要的空间开销是存储 5x5 的矩阵,空间大小是固定的。 ######[AI问答 | 591点数解答 | 2025-11-16 20:45:32]

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