首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++处理和显示一副带向量的卡片

C++处理和显示一副带向量的卡片
EN

Stack Overflow用户
提问于 2016-11-19 22:11:06
回答 1查看 853关注 0票数 0

我试着用向量数组把13张牌给4名玩家,然后展示出他们的手。但我很难弄清楚如何处理这些牌。我知道我必须使用弹出和推牌来处理牌,但我什么都找不到。任何想法都会有帮助。我已经试过了,

代码语言:javascript
复制
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;

    }

}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-19 22:15:17

虽然这看起来很管用

void deal(vector<int> deck, int card[][cards], int players) {

您只是在更新传递参数的副本。退出函数后,调用方的更改将丢失。

我建议这样:以参考的方式传递

代码语言:javascript
复制
void deal(vector<int> &deck, int card[][cards], int players) {

甚至这个:

代码语言:javascript
复制
vector<int> deal(int card[][cards], int players) {
   vector<int> deck;
   ...
   return deck;

这更优雅(因为您的deck变量在开始时应该是空的,所以它是out参数,而不是in/out参数),现在使用return value optimization的编译器使用return value optimization,它只需通过引用传递即可。让我们不要试图比编译器更聪明。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40698474

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档