【问题标题】:Error comparing a random number to the size of a vector [duplicate]将随机数与向量的大小进行比较时出错 [重复]
【发布时间】:2016-07-14 18:37:51
【问题描述】:

我有点过头了,我不确定这个错误是什么意思或如何处理它。这是我的代码:

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 不返回随机数,它只是初始化随机数生成器。因此,您正在做 void % size_t
  • JVApen 是对的。您需要在 srand() 之后使用 rand()

标签: c++


【解决方案1】:

你想这样做:

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

srand: 初始化随机数生成器

rand:生成随机数

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-15
    相关资源
    最近更新 更多