2017-09-06 30 views
0


我目前正在爲遊戲編程AI Hex。該板由長度爲121的陣列表示。在蒙特卡洛樹搜索的模擬階段,我提取可能的移動。

我只是遍歷數組並提取找到0值的索引。 (可能的值是1,-1,0)從數組中抽取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

@ manni66:Sry,我很匆忙。我編輯了我的文字 – CheckersGuy

+1

以上爲什麼你需要加快速度?如果您在執行代碼時遇到問題,您可能需要更多關於此代碼不能滿足您的需求以及您需要多快運行的信息。 – Tas

回答

0

沒有辦法從STL向量或長度爲n的簡單數組中抽取zeroe值的所有位置的時間小於O(n)。這部分算法應該是有效的。