使用结构数组创建typedef
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];
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- C++:TypeDef使用元组
- 使用std::multimap迭代器创建std::list
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 如何创建 typedef 结构的前向声明
- 如何使用 typedef 创建多个数组?
- C++:从两个包含子类 (typedef) 的列表创建一个列表
- 使用 typedef 创建节点有什么优势?
- 在 Java 中创建"typedef"的可能方法
- 强制转换为使用typedef创建的结构类型
- 是否可以使用宏来创建typedef
- Xcode typedef 的 struct 创建错误/警告
- C++ typedef 和返回类型:如何让编译器识别使用 typedef 创建的返回类型
- 创建从外部作用域重新声明模板参数的typedef的负面影响
- 使用结构数组创建typedef
- 如何在C++中创建条件typedef
- 在没有"typedef"的情况下,如何创建用于 c# 泛型的相关类型组?
- 使用typedef从分配器创建shared_ptr
- 如何转发声明要使用 typedef 创建的类型?
- 将使用typedef创建成员吗?