Ich bin ein wenig über meinen Kopf, und ich bin mir nicht sicher, was dieser Fehler bedeutet oder was man dagegen tun soll. Hier ist mein Code:Fehler beim Vergleichen einer Zufallszahl mit der Größe eines Vektors
class player::deck
{
public:
vector<int> deck;
int draw(){
int card = srand(time(NULL)) % deck.size();
deck.erase(deck(begin)+card);
return card;
}
};
Was ich versucht, ein Deck für jeden Spieler zu tun ist, zu machen. Karten, die durch ganze Zahlen dargestellt werden (0 ist Karte 0, 1 ist Karte 1 usw.).
Und hier ist der Fehler:
/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);
^
Jede Hilfe wäre enorm geschätzt. Wenn ich an der falschen Stelle bin oder die Seite falsch benutze, lassen Sie es mich bitte wissen.
srand nicht eine Zufallszahl zurückgibt, es initialisiert nur die Zufallszahl Generator. Daher machst du void% size_t – JVApen
JVApen ist richtig. Sie müssen rand() nach srand() verwenden – Vucko