C++ 如何创建一个表来存储扑克牌并与之交互c++;?

C++ 如何创建一个表来存储扑克牌并与之交互c++;?,c++,C++,我怎样才能做一张储存扑克牌的桌子呢。 例如,在我在控制台中输入的图像序列“4cKs4h8s7sAd4s”中,每2位数字有一张卡,因此4c是四个梅花,Ks是黑桃之王,等等。因此,我想制作一些东西,可以按照图像中显示的方式对它们进行排序。为了以后能数一数有多少张牌是4,或者有多少张牌是梅花。现在我将它存储在一个字符串中,并尝试使用For循环将它们彼此匹配,但这并没有按计划进行。 这一张桌子对应一只手,所以如果有另一张或更多的牌,我需要做两张桌子 我希望有人能理解我的意思。如果我拼错了一些单词,我很抱

我怎样才能做一张储存扑克牌的桌子呢。 例如,在我在控制台中输入的图像序列“4cKs4h8s7sAd4s”中,每2位数字有一张卡,因此4c是四个梅花,Ks是黑桃之王,等等。因此,我想制作一些东西,可以按照图像中显示的方式对它们进行排序。为了以后能数一数有多少张牌是4,或者有多少张牌是梅花。现在我将它存储在一个字符串中,并尝试使用For循环将它们彼此匹配,但这并没有按计划进行。 这一张桌子对应一只手,所以如果有另一张或更多的牌,我需要做两张桌子

我希望有人能理解我的意思。如果我拼错了一些单词,我很抱歉。 我并不是要求有人为我写代码,尽管如果有人能给我一些代码那就太好了。但至少是我需要做的基本想法

我还尝试创建一个卡片类,并为每张卡片分配西装和等级,但如果有多个序列,这不允许我计算卡片数量

提前谢谢

#包括
#包括
#包括
#包括
无符号整数countWordsInString(std::string const&str)
{
std::stringstream(str);
返回std::distance(std::istream_迭代器(stream),std::istream_迭代器());
}
班级卡{
公众:
字符秩;
炭服;
char addrank_套装(char InRank,char InSuit){
秩=单位;
西服=InSuit;
}
};
int main()
{
std::字符串a;
std::stringstream b,c;

如果你想要一张桌子,这里有一个版本

二维数组表 上述定义允许您执行以下操作:

  Card_Table[HEARTS][KING] = true;
您应该在internet上搜索“c++typedef 2d array”以创建2d数组的同义词(这在传递给函数时很有帮助)

二维向量表 另一种方法是使用二维向量:

std::vector<std::vector<bool>> Card_Table_Vector;
搜索数组。上面数组中字母的索引是Suit值(2D表中的行)

通过将枚举与
std::map
一起使用,可以使类型更加一致和友好:

std::map<char, Card_Suit> letter_to_suit_enum;
letter_to_suit_enum['h'] = HEARTS;
letter_to_suit_enum['s'] = SPADES;
letter_to_suit_enum['d'] = DIAMONDS;
letter_to_suit_enum['c'] = CLUBS;

您能否展示您已经编写的程序,并解释您的程序到底是如何不工作或不产生预期结果的?您必须首先展示您的工作;它必须满足a的所有要求;并且在请求stackover帮助之前,它必须是一次真诚的真正尝试,以实现您的程序,而不是几行代码flow.com。有关更多信息,请参阅问题,阅读。为什么使用表格?大多数处理卡片和卡片组的应用程序都定义了一个具有套装和值的
卡片
类。一个
卡片组
将是
卡片
的容器,例如
std::vector
@ThomasMatthews我认为在这种选项卡中这将更容易检查模式,使组合
std::vector<std::vector<bool>> Card_Table_Vector;
static const char suit_letter_to_index[] = {'h', 's', 'd', 'c'};  
std::map<char, Card_Suit> letter_to_suit_enum;
letter_to_suit_enum['h'] = HEARTS;
letter_to_suit_enum['s'] = SPADES;
letter_to_suit_enum['d'] = DIAMONDS;
letter_to_suit_enum['c'] = CLUBS;
char suit_letter = 's';
Card_Suit suit = letter_to_suit_enum[suit_letter];
Card_Table[suit][QUEEN] = true;