私はカードトリックに基づいて簡単なアプリケーションを作成しようとしています。そのアプリの一部では、メインデッキと小デッキを交互に分割する必要があります。私はそれを行うための単純なループを書いたが、デッキを呼び出した後もまだ空である。私は以下のコードの部分を貼り付けます。私はどこで間違いをしたのか知っていますか?もちろん、プログラム全体をチェックしたい場合は、hereとすることができます。このメソッドはDeckクラスの "main"インスタンスによって呼び出され、より小さいデッキはそのメソッドのパラメータです。分割後の空のベクトル
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 [i]; ''に '' dck''とは何ですか? –