c++ - 将随机数与 vector 大小进行比较时出错

标签 c++

<分区>

我有点不知所措,我不确定这个错误是什么意思,也不知道该怎么办。这是我的代码:

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 : 生成随机数

关于c++ - 将随机数与 vector 大小进行比较时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36246483/

相关文章:

c++ - classname() 是否等同于类对象?

c++ - 用于嵌入式 Linux 的非 GPL C/C++ XMPP 客户端库

c++ - 使用 C++、GSOAP 和 Onvif 制作客户端应用程序

c++ - 从 Objective-C 类调用 C++ 构造函数

没有 root 访问权限的 linux 服务器上的 C++11 兼容编译器?

c++ - 读取二维表到数组

c++ - 中缀到后缀算法

c++ - C++如何获取文本框的值?

c++ - 如何处理 std::find_if() 返回 false?

C++: std 没有成员 "string"