2013-04-09 62 views
0

所以我想在C++中製作一副撲克牌模擬器,我想知道,我應該用什麼,一個矢量或一個數組?我意識到每個人的不同能力,我只是不知道我應該使用哪一種來創造有凝聚力的體驗。我需要這個的原因是因爲我正在製作一個基於文本的遊戲,並且我將在其中製作一個迷你遊戲。矢量與陣列的卡片組

+0

一個(雙端)隊列。 – 2013-04-09 13:51:33

+0

deck - >'deque' ;-)最終用戶的體驗並不取決於選擇,但是您的實施很容易。 – 2013-04-09 13:52:15

+0

你需要在甲板上執行什麼操作? – juanchopanza 2013-04-09 13:52:52

回答

0

在C++中,每當你看到「我需要存儲一些東西」時,「默認」選項可能應該是vectordeque。使用普通數組不是有益的,除非它是超級性能的關鍵。

當然,你將需要幾個集合,比如玩家的手,正在使用的卡,未使用的卡。

使用標準容器類(std::vectorstd::deque)你有你不需要的優勢,一個單獨的「多卡怎麼做球員X有」,你可以使用player[x] .hand.size()來確定。 (玩家當然也是收藏類!)

+0

當內存受限且不希望碎片(如嵌入式系統)時,也應使用陣列。 – 2013-04-09 14:06:14

+0

如果它是一個長期存在的集合,並且您使用'reserve'來確定矢量的大小(並且永遠不會增長),那麼碎片就沒有問題。我想說,一個指針的開銷會需要大量的向量來產生很大的不同。 – 2013-04-09 14:12:00