[英]Creating typedef with arrays of structs
我試圖在ProjectEuler上解決問題54。 對於那些不熟悉它的人來說,它涉及尋找1000場撲克游戲的勝利者。
我遇到的問題是,當我嘗試使用typedef使我的程序更簡單,更容易閱讀時,我遇到了以下問題。
錯誤
pokerchecker.hpp:37: error: expected unqualified-id before '[' token
pokerchecker.hpp:38: error: ISO C++ forbids declaration of 'Hand' with no type
接下來是許多其他錯誤,但它們似乎是由上述原因引起的。
第37行如下
typedef Card[5] Hand;
完整標題
#ifndef POKERCHECKER_HPP
#define POKERCHECKER_HPP
class PokerChecker{
public:
PokerChecker(){};
~PokerChecker(){};
enum Rank{
TWO = 2,
THREE,
FOUR,
FIVE,
SIX,
SEVEN,
EIGHT,
NINE,
TEN,
JACK,
QUEEN,
KING,
ACE
};
enum Suit{
HEART,
DIAMOND,
CLUB,
SPADE
};
struct Card{
Rank rank;
Suit suit;
};
typedef Card[5] Hand; // line 37
typedef Hand[2] PokerGame;
typedef short Winner;
Winner EvaluateGame(PokerGame unsortedGame);
private:
PokerGame SortGame(PokerGame unsortedGame);
Hand SortHand(Hand);
// each function returns the highest card (for comparing two similar hands)
Card CheckRF(Hand);
Card CheckSF(Hand);
Card CheckFOAK(Hand);
Card CheckFH(Hand);
Card CheckF(Hand);
Card CheckS(Hand);
Card CheckTOAK(Hand);
Card CheckTP(Hand);
Card CheckOP(Hand);
Card CheckHC(Hand);
};
#endif //POKERCHECKER_HPP
我正在嘗試做什么? 如果是這樣,我當前的代碼怎么/錯了?
聲明數組typedef的正確方法是:
typedef Card Hand[5];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.