从数组中提取0个值

时间:2017-09-06 21:41:50

标签: c++ algorithm


我目前正在为游戏Hex编程AI。电路板由长度为121的数组表示。在蒙特卡罗树搜索的模拟阶段,我提取可能的移动。
我只是遍历数组并提取找到0值的索引。 (可能的值为1,-1,0)

std::vector<unsigned char>moveListe;
moveListe.reserve(121 - board->moveCount);
for (unsigned char i = 0; i<121; i++) {
    if (board->board[i] != EMPTY) {
        continue;
    }
    moveListe.push_back(i);

}

有什么方法可以加快速度吗?

1 个答案:

答案 0 :(得分:0)

没有解决方案从STL向量或长度为n的简单数组中提取零值的所有位置,其时间小于O(n)。算法的这一部分应该是高效的。