我试着用向量数组把13张牌给4名玩家,然后展示出他们的手。但我很难弄清楚如何处理这些牌。我知道我必须使用弹出和推牌来处理牌,但我什么都找不到。任何想法都会有帮助。我已经试过了,
void deal(vector<int> deck, int card[][cards], int players) {
for (int i = 0; i < players; i++) {
cout << "Player " << i + 1 << ": ";
for (int k = 0; k < cards; k++) {
deck.push_back(cards);
}
cout << endl;
}
}发布于 2016-11-19 22:15:17
虽然这看起来很管用
void deal(vector<int> deck, int card[][cards], int players) {
您只是在更新传递参数的副本。退出函数后,调用方的更改将丢失。
我建议这样:以参考的方式传递
void deal(vector<int> &deck, int card[][cards], int players) {甚至这个:
vector<int> deal(int card[][cards], int players) {
vector<int> deck;
...
return deck;这更优雅(因为您的deck变量在开始时应该是空的,所以它是out参数,而不是in/out参数),现在使用return value optimization的编译器使用return value optimization,它只需通过引用传递即可。让我们不要试图比编译器更聪明。
https://stackoverflow.com/questions/40698474
复制相似问题