Сравнение памяти, которое быстрее?

У меня есть 3D векторный класс. Частные переменные определяются:

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

В реализации оператора ==, который быстрее?

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

ИЛИ

return memcmp(this->data, v.data) == 0;
5
задан Anthony 22 June 2010 в 03:15
поделиться

1 ответ

К сожалению, эти два понятия не эквивалентны. (В частности, NaN и нули со знаком не используют побитовое сравнение внутри FPU).

Таким образом, вы должны делать свой выбор, основываясь на правильности, а не на скорости.

15
ответ дан 18 December 2019 в 11:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: