gpt4 book ai didi

C++ 处理并显示一副带有 vector 的纸牌

转载 作者:行者123 更新时间:2023-11-27 22:48:23 25 4
gpt4 key购买 nike

我正在尝试使用 vector 数组向 4 名玩家发 13 张牌,然后展示手牌。但我正在努力弄清楚如何发牌。我知道我必须使用 pop 和 push in deck 来发牌,但我什么也做不了。任何想法都会有所帮助。到目前为止我试过了,

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;

}

}

最佳答案

虽然这似乎可行

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 ,它并不比通过引用传递花费太多。我们不要试图比编译器更聪明。

关于C++ 处理并显示一副带有 vector 的纸牌,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698474/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com