【问题标题】:HOW to compare all the elements of a matrix in C++?如何在 C++ 中比较矩阵的所有元素?
【发布时间】:2016-06-01 13:27:44
【问题描述】:

我已经尝试了一周,但没有发现任何可以帮助我的东西。有人知道该怎么做吗? 如果没有重复的数字,我需要比较每个元素矩阵并有一个肯定的表达;如果有重复的数字,则表示否定。

我的矩阵是 3*3

非常感谢

【问题讨论】:

  • 你能展示你的矩阵实现吗?
  • @PetterFriberg,据我所知,这个问题是关于查找 any 元素是否重复。您引用的帖子检查它们是否 all 相同。不同的东西。

标签: c++ matrix compare


【解决方案1】:

如果你想检查矩阵的所有元素是否相等,你可以试试这个代码

int matrix[3][3];

int testMatrix(int* m, int size)
{
   for(int i = 0; i < size * size; i++)
   {   
      for(int j = i + 1; j < size * size; j++)
         if(m[i] == m[j])
            return -1;
   }

   return 1;
} 

并像这样使用它:

testMatrix(&matrix[0][0], 3);

在内存中,您的 3x3 矩阵看起来与 9 个元素的数组相同

【讨论】:

  • 如果testMatrix如上所示被调用,你会得到一个关于指针类型不兼容的编译器错误。
  • 我修复了代码。除了 &matrix[0][0] 你也可以使用 reinterpret_cast(matrix) (C++ 风格)或只是 (int*)matrix (C 风格)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
  • 2016-11-13
相关资源
最近更新 更多