2015-04-24 84 views
0
/* Class Hand represents a hand in Hold'em poker. 
Namely the best 5 cards formed from 7 cards: 2 player's pocket cards 
and 5 cards from the board.*/ 
class Hand { 
public: 
    Hand(const std::vector<CardPtr>& cardseq); 
    /*...*/ 
}; 

構造函數需要一張卡片向量。該類的內部邏輯是基於給定矢量由7個卡組成的假設。但我沒有控制它。當構造函數中的cardseq.size() != 7可以引發異常。但有沒有其他方法通過控制初始化向量的大小來保持類實例的行爲?將特定大小的矢量傳遞給函數

+0

你必須使用矢量嗎? – Dannnno

+0

使用7個輸入參數或傳入數組可能會更好。 – phantom

+0

'在構造函數中投擲'給了我一個寒意...... –

回答

6

如果你的數據結構始終是7張數組的數組,那麼爲什麼不使用std::array<CardPtr, 7>

+1

是的。謝謝。這就是我一直在尋找的。使用固定大小的容器時,編譯器將控制它,在運行時不會失敗。 – Syb3rian