c++ - 内存对比,哪个更快?

标签 c++ comparison

我有一个 3D vector 类。私有(private)变量定义:

union {
    struct {
        double x;
        double y;
        double z;
    };
    double data[3];
};

在实现 operator== 时,哪个更快?

return this->x == v.x && this->y == v.y && this->z == v.z;

return memcmp(this->data, v.data) == 0;

最佳答案

不幸的是,这两者并不等同。 (特别是 NaN 和带符号的零不在 FPU 内使用按位比较)。

所以你应该根据正确性而不是速度来做出选择。

关于c++ - 内存对比,哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3090038/

相关文章:

python 使用鸭子类型(duck typing)比较 2 个相似的对象

c - 如何检查单词a中单词b中的所有字符(C语言)?

php - 为什么 MYSQL 在与 int 值比较时将 NULL 或 String 值转换为 0?

c# - Entity Framework 将字符串转换为 Int

c++ - 是否可以用零长度数组成员编写一个 "complete"C++ 类?

c++ - 覆盖或删除继承的构造函数

c++ - QPainter 未激活

c++ - 构建 Boost Coroutine2

c++ - 在 C++ 中,如果一个成员引用在其声明中被初始化,为什么它需要存储空间?

c# - 比较两个对象时有条件地更改 GetHashCode()