這對我想要做的事情來說太長了。 任何方式來使這個更快?如何在刪除矢量行時更快?
編輯對不起,我一直有一個高質量的郵政編碼問題,所以我只發佈最低限度。
我想要做的是一個奧馬哈撲克股權計算器。
A-它需要我們給他的4張卡片(myhand [4]),它會檢查所有可能的手的組合,看看是否有任何重複。
B-如果有任何重複的,它要刪除包含手 (所以當我們後來計算的股權,我們將不計算對一隻手是不可能有人有)
向量的行int myhand[4] = { 3, 12, 22, 10 };
vector<vector<int> > vec(4, vector<int>(270725));
for (int m = 0; m < vec[0].size(); m++) { // A
for (int k = 0; k < 4; k++) {
for (int j = 0; j < 4; j++)
if (myhand[k] == vec[j][m]) {
for (int i = 0; i < 4; i++) {
vec[i].erase(vec[i].begin() + m); // B
}
k = 0;
j = 0;
break;
}
}
}
有沒有辦法更有效的代碼?
感謝, Kaven
這是什麼意思?瞭解代碼在高層應該達到什麼程度以查看最佳優化方式會非常有用。 –
它看起來很奇怪... 4 for循環看起來像過度殺傷 –
轉置矩陣可能會提高性能。 – stefan