2016-03-27 7 views
0

私は少し頭がおかしく、このエラーが何を意味するのか、何をすべきかはわかりません。私はは、各プレーヤーのためのデッキを作るされてやってをしようとしている何乱数とベクトルの大きさを比較するエラー

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);                                      
          ^  

そして、ここではエラーになります。私が間違った場所にいたり、サイトを正しく使用していない場合は、私に知らせてください。

+0

がsrand関数は乱数を返しません、それだけで乱数を初期化乱数を生成します:乱数ジェネレータ

randを初期化しますジェネレータ。したがって、あなたは空白をしています%size_t – JVApen

+0

JVApenが正しいです。 srand()の後にrand()を使う必要があります。 – Vucko

答えて

2

あなたはこれをしたい:

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

srand

関連する問題