首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

关于数组比较的有关问题

2012-12-19 
关于数组比较的问题在C++/CLI中,有没有什么简便的办法比较两个数组值相等?我用“”符号和Equals都不行。难

关于数组比较的问题
在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
{
  不相等
}

热点排行