c++ - 在 C++ 中比较数组是否相等

标签 c++ arrays comparison equality

有人可以向我解释一下为什么以下代码的输出显示数组不等于

int main()
{

    int iar1[] = {1,2,3,4,5};
    int iar2[] = {1,2,3,4,5};

    if (iar1 == iar2)
        cout << "Arrays are equal.";
    else
        cout << "Arrays are not equal.";

    return 0;   
}

最佳答案

if (iar1 == iar2)

这里 iar1iar2decaying 指向各自数组的第一个元素的指针。由于它们是两个不同的数组,因此指针值当然是不同的,并且您的比较测试也不相等。

要进行逐元素比较,您必须编写一个循环;或使用 std::array而是

std::array<int, 5> iar1 {1,2,3,4,5};
std::array<int, 5> iar2 {1,2,3,4,5};

if( iar1 == iar2 ) {
  // arrays contents are the same

} else {
  // not the same

}

关于c++ - 在 C++ 中比较数组是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866413/

相关文章:

数据库 vs 数据集市 vs 数据仓库 vs 数据湖

python - 获取python中两个字典之间的差异(值)

comparison - 使用!==或!=将Julia变量与 `nothing`比较

c++ - 如何模拟 QML 组件

arrays - 多维数组vbscript中的多个字符串

c++ - 尝试使用智能指针时抛出异常

arrays - Hive:数组列上的聚合函数

javascript - 使用对象方法显示对象属性值

c++ - 如何编译Google Protobuf命令行界面编译

c++ - 为什么在 C++1z 的这个例子中,clang 和 g++ 为 a1.v 和 a2.v 打印 0?