Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从单独的函数更改QVector变量_C++_Function_Variables - Fatal编程技术网

C++ 从单独的函数更改QVector变量

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

我在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<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,整数数量);
^^^参照
如果使用引用作为参数,则函数将使用原始数据,而不是副本