C++ 从单独的函数更改QVector变量
我在deck.cpp中有一个函数,它从一副牌中随机处理牌:C++ 从单独的函数更改QVector变量,c++,function,variables,C++,Function,Variables,我在deck.cpp中有一个函数,它从一副牌中随机处理牌: QVector<card> Deck::deal_rand_cards(QVector<card> vDeck, int quantity) { QVector<card> vDealt; int deckSize = vDeck.size(); card randCard; qsrand(QTime::currentTime().msec()); for (int i=0;i<quan
QVector<card> Deck::deal_rand_cards(QVector<card> vDeck, int quantity)
{
QVector<card> vDealt;
int deckSize = vDeck.size();
card randCard;
qsrand(QTime::currentTime().msec());
for (int i=0;i<quantity;i++)
{
int rn=rand()%deckSize;
randCard = vDeck[rn];
qDebug()<<vDeck.size();
vDealt.append(randCard);
vDeck.remove(rn);
}
return vDealt;
}
QVector卡片组::处理随机卡片(QVector vDeck,整数数量)
{
QVector-vDealt;
int deckSize=vDeck.size();
卡片和卡片;
qsrand(QTime::currentTime().msec());
对于(int i=0;i您需要将vDeck的引用传递到deal\u rand\u cars
函数中,目前您正在处理vDeck的副本
QVector<card> deal_rand_cards(QVector<card> &vDeck, int quantity);
^^^ pass by reference
QVector交易随机卡(QVector&vDeck,整数数量);
^^^参照
如果使用引用作为参数,该函数将使用原始数据,而不是副本。您需要将vDeck的引用传递到deal\u rand\u cars
函数中,当前正在使用vDeck的副本
QVector<card> deal_rand_cards(QVector<card> &vDeck, int quantity);
^^^ pass by reference
QVector交易随机卡(QVector&vDeck,整数数量);
^^^参照
如果使用引用作为参数,则函数将使用原始数据,而不是副本