Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 两个数组是否等于函数c++;_C++_Arrays_Function_Compare - Fatal编程技术网

C++ 两个数组是否等于函数c++;

C++ 两个数组是否等于函数c++;,c++,arrays,function,compare,C++,Arrays,Function,Compare,我试图做一个和数组比较的函数,如果它们相同,则返回true。现在数组很简单,以后会升级,但我一直在使用testEqual函数。 下面是代码 int n = 5; int array[5] = {5,10,3,4,7}; bubbleSort(pole,n); int array2[5] = {3,4,5,7,10}; testEqual( array , array2 , "bubbleSort"); 这里是testEqual函数,我需要在数组上重新生成,但我不知道如何生成 bool tes

我试图做一个和数组比较的函数,如果它们相同,则返回true。现在数组很简单,以后会升级,但我一直在使用
testEqual
函数。 下面是代码

int n = 5;
int array[5] = {5,10,3,4,7};
bubbleSort(pole,n);

int array2[5] = {3,4,5,7,10};
testEqual( array , array2 , "bubbleSort");
这里是
testEqual
函数,我需要在数组上重新生成,但我不知道如何生成

bool testEqual(int i1, int i2, const string testName) {
    bool myresult = (i1 == i2);
    return myresult;
}
其他功能,如bubbleSort,都很好,我只需要重新制作
testEqual

,您也可以使用。例如:

#include <algorithm>

int *ints;
ints = new int[10];

bool EqualArray(const Object& obj)
{
   return std::equal(ints,ints + 10, obj.ints);
}
(这将引用未降级为指针的数组,以首先检查其声明的大小,因此是安全的)。

您也可以使用。例如:

#include <algorithm>

int *ints;
ints = new int[10];

bool EqualArray(const Object& obj)
{
   return std::equal(ints,ints + 10, obj.ints);
}
(这将引用未降级为指针的数组,以首先检查其声明的大小,因此是安全的)。

以下内容可能会有所帮助:

template <typename T, std::size_t N>
bool isEqual(const T (&lhs)[N], const T (&rhs)[N])
{
    return std::equal(std::begin(lhs), std::end(lhs), std::begin(rhs));
}
模板
布尔相等(常数T和lhs)[N],常数T和rhs)[N])
{
返回std::equal(std::begin(lhs)、std::end(lhs)、std::begin(rhs));
}
如果您使用
std::array
,您可以免费使用它。(语法更加友好)。

以下内容可能会有所帮助:

template <typename T, std::size_t N>
bool isEqual(const T (&lhs)[N], const T (&rhs)[N])
{
    return std::equal(std::begin(lhs), std::end(lhs), std::begin(rhs));
}
模板
布尔相等(常数T和lhs)[N],常数T和rhs)[N])
{
返回std::equal(std::begin(lhs)、std::end(lhs)、std::begin(rhs));
}

如果您使用
std::array
,您可以免费使用它。(语法更友好)。

要比较两个数组,可以使用标准算法
std::equal

比如说

bool testEqual( const int *first1, const int *last1, const int *first2, const int *last2 )
{
    return std::equal( first1, last1, first2, last2 );
}
它可以被称为以下方式

testEqual( array, array + 5, array2, array2 + 5 );
至于你的功能,那么它是无效的

它只是比较两个整数,不清楚第三个参数的含义

bool testEqual(int i1, int i2, const string testName) {
    bool myresult = (i1 == i2);
    return myresult;
}

要比较两个数组,可以使用标准算法
std::equal

比如说

bool testEqual( const int *first1, const int *last1, const int *first2, const int *last2 )
{
    return std::equal( first1, last1, first2, last2 );
}
它可以被称为以下方式

testEqual( array, array + 5, array2, array2 + 5 );
至于你的功能,那么它是无效的

它只是比较两个整数,不清楚第三个参数的含义

bool testEqual(int i1, int i2, const string testName) {
    bool myresult = (i1 == i2);
    return myresult;
}

我认为它与H2CO3“什么是平等的?”

使用std::equal的方法与您提供的数组不匹配…std::equal将采用相同的元素和顺序

我修改了这个例子


因此,对于使用std::equal,您应该先对它们进行排序,然后再进行排序,我认为这与H2CO3“什么符合equal条件?”

使用std::equal的方法与您提供的数组不匹配…std::equal将采用相同的元素和顺序

我修改了这个例子



因此,对于使用std::equal,您应该先对它们进行排序(数组重载也很有用)什么是“两个数组相等”?您的函数只测试两个数字,而不是数组。您可能应该将指向数组的指针与数组大小一起作为函数参数传递,然后在函数内的所有元素上运行循环。这应该会让您走上正确的道路。@user1264727,加上您应该首先测试大小是否相等的备注,我将把这作为一个答案,特别是考虑到问题中所显示的缺乏努力/理解。另请参见(数组重载也将很有用)什么符合“两个数组相等”的条件?您的函数只测试两个数字,而不是数组。您可能应该将指向数组的指针与数组大小一起作为函数参数传递,然后在函数内的所有元素上运行循环。这应该会让您走上正确的道路。@user1264727,加上您应该首先测试大小是否相等的备注,我将把这作为一个答案,特别是考虑到问题中所显示的缺乏努力/理解。也可以看出这不是一个答案。简单地链接到另一个问题并不是一个特别合适的答案。最好将该问题标记为重复问题,或者干脆发表评论。这不是答案。简单地链接到另一个问题作为答案并不特别合适。最好将问题标记为重复的问题,或者干脆发布一条注释。很好,如果大小不匹配,则在编译时失败。我喜欢。很好,如果大小不匹配,它会在编译时失败。我喜欢。
std::equal
只需要三个迭代器。您需要单独测试尺寸是否匹配。@迈克·西摩您错了。STD的家族:在C++ 2011中(或C++ 2014中),相等的算法被放大,因为现在我通过C++ C++ 2014来研究。25.2.11只指定了三个迭代器的重载,三个迭代器加上一个谓词。@ Mike Seymour现在我看C++ 2014草案3691。))Mike Seymour,我认为GCC已经包含了它,虽然我没有检查。<代码> STD::相等< /代码>只占用三个迭代器。您需要单独测试尺寸是否匹配。@迈克·西摩您错了。STD的家族:在C++ 2011中(或C++ 2014中),相等的算法被放大,因为现在我通过C++ C++ 2014来研究。25.2.11只指定三个迭代器的重载,三个迭代器加一个谓词。@ Mike Seymour现在我看C++ 2014草案3691。))Mike Seymour,我认为GCC已经包含了它,虽然我没有检查。