99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

C++ 紙牌的向量

2023-03-20 16:23 更新

本章選擇紙牌作為研究對象的原因是,牌堆是一個很明顯的紙牌向量的應用。 這是創(chuàng)建一副52張牌組成的新牌堆的代碼:

apvector<Card> deck (52);

這是對象的狀態(tài)圖: enter image description here

三個點代表我不想畫出的48張牌。記住,我們尚未初始化紙牌實例變量。有些環(huán)境中,它們會初始化為0,就像圖中這樣,而在其他環(huán)境中它們可能包含任何可能的值。

一種初始化方法是,以一個Card對象為第二個參數調用向量的構造函數:

Card aceOfSpades (3, 1);
apvector<Card> deck (52, aceOfSpades);

這段代碼創(chuàng)建了一副由52張同樣的牌組成的牌堆,就像變魔術用的特殊牌。當然,創(chuàng)建一副由52張不同的牌組成的牌堆才更有意義。這可以使用嵌套循環(huán)實現(xiàn)。

外層循環(huán)枚舉了花色,從0到3。對于每種花色,內部循環(huán)枚舉了牌的大小,從1到13。因為外部循環(huán)迭代4詞,內部循環(huán)迭代13詞,循環(huán)體總的執(zhí)行次數是52次(即13乘以4)。

int i = 0;
for (int suit = 0; suit <= 3; suit++) {
  for (int rank = 1; rank <= 13; rank++) {
    deck[i].suit = suit;
    deck[i].rank = rank;
     i++;
  }
}

我們使用變量i記錄牌堆中要使用的下一張牌。

注意,我們可以把數組元素選擇語法([]操作符)和對象的實例變量選擇語法(點操作符)組合起來。比如表達式deck[i].suit意思是“牌堆中第i張卡的花色”。

作為練習,請把構建牌堆的代碼封裝為buildDeck函數,該函數不接受任何參數并返回一個完全填充的紙牌向量。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號