哪种表达卡的方式更有效?整数,结构还是类?

时间:2018-12-03 04:29:23

标签: class optimization visual-c++ data-structures

对于性能至关重要的操作,以整数/枚举,结构或类的形式表示Card是否有区别?

整数:

0 => Spade King
1 => Spade Queen
2 => Spade Jack 
. 
. 
. 
51 => Club Two

Struc:

 Struct Card
 {
      Suit GivenSuit;
      Rank GivenRank;

      Some functions... 
 }`

班级:

 Class Card
 {
      Card();

      Suit GivenSuit;
      Rank GivenRank;

      Some functions... 
 }

2 个答案:

答案 0 :(得分:0)

枚举和配对如何?

enum CardsValues {
  Ace = 1,2,3,4,5,6,8,9
  Jack = 10,
  Queen,
  King,
}

enum CardColour {
 Spade, ...
}
std::pair<CardValue, CardColour> theCard;

答案 1 :(得分:0)

如果卡已在调用类中定义为整数,则访问时间可能比从调用类外部访问类效率更高。

但这可能会对您的解决方案进行微观优化,并在纳秒级的功能v / s效率之间进行权衡。

不能完全确定您的应用程序是什么,但是如果您要编写通用的卡片组,则使用类Card相对于OOP设计原则会更有意义。使用整数将使您的类不可重用且脆弱。