正如标题所述,我在将随机数作为元素添加到整数类型的向量中时遇到了麻烦。我包含了 time 和 stdlib 库以与向量库一起工作。
到目前为止,我的尝试(使用课程)是:
通过引用将向量传递到将随机元素添加到向量中的函数中。此外,传递对我要更新的变量的引用,并使用在类中声明并在构造函数中定义的指针来保存变量的内存地址(与前几行中引用的相同)。
class PlayerHand
{
public:
playerHand();
void populateHand(vector<int>&, int&)
private:
vector<int> &refVector;
int *pPointer;
int giveCard;
};
playerHand::playerHand()
{
srand((time(NULL)));
giveCard = (rand() % 14) + 1;
pPointer = &giveCard;
}
void playerHand::populateHand(vector<int> &refVector, int &refGiveCard)
{ for( int i = 0; i <= 8; i++)
{
refVector.push_back(*pPointer); //dereference thepointer to store value in giveCard
srand(time(0));
refGiveCard = (rand() %14) + 1; /*Here is where I'm trying to update the reference
so before the next loop, the reference should have
a new updated value*/
cout << refVector.at(i) << " ";
}
}
所以在我编译完代码之后,vector中的元素都是同一个数,没有区别。我在代码中犯了什么错误?