Перечисления C ++ медленнее в использовании, чем целые числа?

Это действительно простая проблема:

Я программирую программу Go. Должен ли я представлять доску с помощью QVector или QVector , где

enum Player
{
    EMPTY = 0,
    BLACK = 1,
    WHITE = 2
};

я предполагаю, что, конечно, использование Player вместо целых чисел будет медленнее. Но мне интересно, насколько больше, потому что я считаю, что использование enum лучше кодирования.

Я провел несколько тестов, касающихся назначения и сравнения игроков (в отличие от int )

QVector<int> vec;
vec.resize(10000000);
int size = vec.size();


for(int i =0; i<size; ++i)
{
    vec[i] = 0;
}


for(int i =0; i<size; ++i)
{
    bool b = (vec[i] == 1);
}


QVector<Player> vec2;
vec2.resize(10000000);
int size = vec2.size();


for(int i =0; i<size; ++i)
{
    vec2[i] = EMPTY;
}


for(int i =0; i<size; ++i)
{
    bool b = (vec2[i] == BLACK);
}

Обычно это всего на 10% медленнее. Есть ли что-нибудь еще, что я должен знать, прежде чем продолжить?

Спасибо!

Изменить: 10% разница не плод моего воображения, она, кажется, специфична для Qt и QVector. Когда я использую std :: vector, скорость такая же

66
задан Fezvez 2 September 2015 в 21:13
поделиться