我正在尝试解决 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
我正在尝试做的事情可能吗?如果是这样,我当前的代码有什么问题/有什么问题?