이것은 내가하고 싶은 일에 너무 오래 걸리고 있습니다. 이렇게 빨리 할 수있는 방법은 없나요?벡터 행을 삭제하는 동안 더 빠른 방법은 무엇입니까?
편집 죄송합니다. 품질 게시 코드 문제가 계속 발생하여 방금 최소한 게시했습니다.
내가하려는 것은 오마하 포커도 계산 도구입니다.
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