这确实是一个简单的问题:
我正在编写Go程序。我应该用aQVector<int>
或a代表董事会QVector<Player>
吗
enum Player
{
EMPTY = 0,
BLACK = 1,
WHITE = 2
};
我想当然会发现,使用Player而不是整数会更慢。但是我想知道还有多少,因为我相信使用enum
是更好的编码。
我已经完成了一些有关分配和比较Player的测试(相对于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时,速度是相同的