我正在嘗試基於卡技巧編寫一個簡單的應用程序。在該應用程序的某些部分,我不得不將主甲板交替分割成較小的甲板。我寫了一個簡單的循環來做到這一點,但在調用套牌後仍然是空的。我粘貼下面的代碼部分。你知道我犯了什麼錯誤嗎?當然,如果你想檢查整個程序,你可以做here。該方法由Deck類的「main」實例調用,較小的deck是該方法的參數。拆分後的空向量
void split_deck(Deck one, Deck two, Deck three, Deck four, int time)
{
Deck* on=&one;
Deck* tw=&two;
Deck* th=&three;
Deck* fo=&four;
on->dck.clear();
tw->dck.clear();
th->dck.clear();
fo->dck.clear();
int buff;
for (int i = 0; i < 24; i++)
{
buff = dck[i];
if (i%time == 0) on->dck.push_back(buff);
if (i%time == 1) tw->dck.push_back(buff);
if (i%time == 2) th->dck.push_back(buff);
if (i%time == 3) fo->dck.push_back(buff);
}
}
你已經通過價值傳遞了所有套牌,這意味着這些都是在該函數結束時消失的所有副本。另外,指針是什麼? – NathanOliver
@NathanOliver我偷偷的懷疑是,OP認爲「我想修改原始文件,我需要一個指向它的指針」,但沒有考慮到副本已經發生(因爲如你所提到的那樣通過了值傳遞)。 P.S:參考文獻的效果會更好。 – Borgleader
「buff = dck」中的''dck'' [i];''? –