Это действительно простая проблема:
Я программирую программу 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, скорость такая же