当前位置: 代码迷 >> VC >> 关于数组比较的有关问题
  详细解决方案

关于数组比较的有关问题

热度:7745   发布时间:2013-02-25 00:00:00.0
关于数组比较的问题
在C++/CLI中,有没有什么简便的办法比较两个数组值相等?我用“==”符号和Equals都不行。难道只能用循环语句逐个比较?
------解决方案--------------------------------------------------------
好像没有现成的 函数
------解决方案--------------------------------------------------------
试试strcmp(str1,str2);
------解决方案--------------------------------------------------------
重载==,然后用 
------解决方案--------------------------------------------------------
C++ STL
------解决方案--------------------------------------------------------
需要自己写一个重载函数。。。
------解决方案--------------------------------------------------------
这是一个匹配算法。

推荐几种:
   1、Brute Force,最简单的逐一比较的蛮力算法。简单而效率低下;
   2、KMP算法,效率较高,不过较难理解;
   3、Horspool 算法;
   4、Boyer-Moore算法;
   5、Sunday算法;
   6、RK算法;

最后。如果数组尺寸相等,并且元素都相等才是相等的话,可以给每个数组元素加一个权,然后分别计算数组元素之和,最后一次判断这个和相等与否。举个例子,假设每个数组4个元素,第一个数组内的元素为:
   a[ 0 ] = 1;  a[ 1 ] = 8; a[ 2 ] = 4; a[ 3 ] = 6;
每个数组加个10为权,意思就是将 1、8、4、6看作 1 * 10^0 + 8 * 10^1 + 4 * 10^2 + 6 * 10^3 = 6481,其他数组也这么处理,然后看最终的6481是否与其他的相等。
------解决方案--------------------------------------------------------
如果是简单值类型
double a[3]={1.0,20,30};
double b[3]={1.0,20,30};
if(memcmp(a,b,sizeof(a))==0)
{
  "相等"
}
else
{
  不相等
}
  相关解决方案