双链表2值c++; 我需要在C++中为学校做扑克游戏。 我做了一张班级卡片和一副牌。 我需要制作一个所有卡片的双链接列表,每张卡片都有一套套装和一个等级(值)。如何将两个属性(套装和等级)附加到双链接列表中的卡上
套装和等级是卡片的属性,与链表无关。因此,最好将这些属性封装到双链表2值c++; 我需要在C++中为学校做扑克游戏。 我做了一张班级卡片和一副牌。 我需要制作一个所有卡片的双链接列表,每张卡片都有一套套装和一个等级(值)。如何将两个属性(套装和等级)附加到双链接列表中的卡上,c++,list,linked-list,poker,C++,List,Linked List,Poker,套装和等级是卡片的属性,与链表无关。因此,最好将这些属性封装到卡类中 如果您已经这样做了,但仍有一些不清楚的地方,请展开您的问题。双链接列表是一种结构(结构或类),带有指向上一个链接和下一个链接的指针。除了这些指针之外,您还可以添加任意数据,这些数据可以被视为有效负载。在那里你可以放任何你想要的数据。以下是一个例子: class Card { public: // Constructor Card(int rank, int suit, Card* prev=
卡
类中
如果您已经这样做了,但仍有一些不清楚的地方,请展开您的问题。双链接列表是一种结构(结构或类),带有指向上一个链接和下一个链接的指针。除了这些指针之外,您还可以添加任意数据,这些数据可以被视为有效负载。在那里你可以放任何你想要的数据。以下是一个例子:
class Card {
public:
// Constructor
Card(int rank, int suit, Card* prev=NULL)
{
if (prev)
{
m_prev = prev;
prev->m_next = this;
}
m_prev = prev;
m_rank = rank;
m_suit = suit;
}
// Accessors
int Rank() { return m_rank; }
int Suit() { return m_suit; }
Card* Prev() { return m_prev; }
Card* Next() { return m_next; }
private:
int m_rank, m_suit;
Card *m_prev, *m_next;
}
重新创建自己的双链表是作业的一部分,还是您可以使用
std::list
来完成所有这些工作?您到底有什么问题?你尝试了什么,你被困在哪里了?“我需要为学校做一个扑克游戏”。哈哈,我还以为你在要求学校最好的秘密场所,举办扑克派对。嗯。。。就个人而言,我不会在card类中包含下一个和上一个指针。由于种种原因,它混淆了上市责任和信用卡模式,并且没有明显的单一用途。。。它可以链接到下一张最高值的卡,它可以链接到一只手上的下一张卡,它可以链接到下一个数值等等。。。如果你有列出手牌、牌、套装没有曲解的余地。我完全同意。但我不想混入模板的概念,因为这个问题有新手的味道。一旦他理解了双向链表及其有效负载的基本概念,我就会使用您建议的抽象。