在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
{
不相等
}