C++:交换矩阵的行:使用单维数组
C++: Swap Rows For A Matrix: Using a SINGLE DIMENSION Array
亲爱的善良而聪明的人,您介意与我分享为什么我的代码无法将行交换为矩阵吗?当我运行代码时,两行变得相同,天哪。
条目[i]是存储矩阵中元素的动态数组。 元素从左到右逐行存储。 即在 3X3 矩阵中,条目 [2] 是第 1 行的第 3 个元素, 条目[3]是第2行的第一个元素
n = number of rows in matrix
m = number of columns in matrix
void Matrix::SwapRows(int i, int j) {
double* temp;
temp = new double[n * m];
double* temp2;
temp2 = new double[n * m];
for (int a = 1; a <= n; a++) {
for (int b = 1; b <= m; b++) {
if (a == i) {
temp[(j - 1) * m + b - 1] = entries[(j - 1) * m + b - 1];
entries[(a - 1) * m + b - 1] = temp[(j - 1) * m + b - 1];
}
if (a == j) {
temp2[(i - 1) * m + b - 1] = entries[(i - 1) * m + b - 1];
entries[(a - 1) * m + b - 1] = temp2[(i - 1) * m + b - 1];
}
}
}
delete temp;
delete temp2;
}
THanx to Jesper Juhl,swap 就可以了。正确的方法如下。谢谢杰斯珀!
void Matrix::SwapRows(int i, int j) {
for (int a = 1; a <= n; a++) {
for (int b = 1; b <= m; b++) {
if (a == i) {
swap (entries[(a - 1) * m + b - 1], entries[(j - 1) * m + b - 1]);
}
}
}
}
相关文章:
- 指向多维数组C++的指针
- C++使用数组作为多维数组,尽管将其初始化为带有指针的 1D
- 将值从二维数组输出到文本文件
- 在二维数组中查找最小值和最大值?
- 使用递归模板动态分配的多维数组
- 多维数组 C++ 中数组下标的类型"int[int]"无效
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 如何正确填充在堆上分配的二维数组?
- 传递二维数组时出现问题
- 具有随机数的二维数组不会更改
- C++:交换矩阵的行:使用单维数组
- C++:矩阵高斯消除不起作用:使用单维数组来存储元素
- C++ 中数组(单引号和双引号)的可视常量字符* 与字符
- 二维数组:二维数组的子平方的元素之和
- 用变量作为C++中二维数组的维数的问题
- 我可以有一个跳过索引的布尔值的单维数组吗?
- 读取数组2维的另一种方式c++
- 有四个括号的数组的维数是多少?
- 在c++中实现多维数组奇维的最佳方法