将随机数与向量大小进行比较时出错

Error comparing a random number to the size of a vector

本文关键字:比较 出错 随机数 向量      更新时间:2023-10-16

我有点不知所措,我不确定这个错误意味着什么,也不知道该怎么办

class player::deck
{
    public:
        vector<int> deck;
        int draw(){
            int card = srand(time(NULL)) % deck.size();
            deck.erase(deck(begin)+card);
            return card;
        }
};

正在尝试为每个玩家制作一副牌。由整数表示的卡(0表示卡0,1表示卡1,等等)。

这是一个错误:

/home/ubuntu/workspace/try3/main.cpp: In member function ‘int player::deck::draw()’:                                                                                                             
/home/ubuntu/workspace/try3/main.cpp:27:54: error: invalid operands of types ‘void’ and ‘std::vector<int>::size_type {aka long unsigned int}’ to binary ‘operator%’                              
         int card = srand(time(NULL)) % deck.size();                                                                                                                                         
                                                  ^                                                                                                                                          
/home/ubuntu/workspace/try3/main.cpp:28:34: error: no match for call to ‘(std::vector<int>) (<unresolved overloaded function type>)’                                                             
         deck.erase(deck(begin)+card);                                                                                                                                                       
                              ^        

任何帮助都将不胜感激。如果我在错误的地方或错误地使用了网站,请告诉我。

您想要这样做:

srand(time(NULL));
int card = rand() % deck.size();

srand:初始化随机数生成器

rand:生成随机数