我对制作一个 vector 来容纳类非常困惑。
如果我想在单个 vector 中保存一堆数据,例如下面的示例。然后将数据写入类成员函数中,并能够被其他函数调用和使用。

我在哪里粘贴 vector 声明?
请帮忙!

#include <vector>

class Card
{
   public:
    int suit;
    int rank;
    Card::Card(int suit, int rank);
    Function();
};

 vector<Card> cards;

int main()
{
}
Card::Function()
 {
    for loop...
     Card cardz(i, i);
    cards.push_back(cardz);
}

最佳答案

在我看来,您正在扩展Card对象应做的工作。我可以建议以下布局吗?首先定义一张卡。

class Card {
  public:
    Card(int s, int r)
    : suit(s), rank(r)  {
      // Initialize anything else here
    }

  private:
    int suit, rank;
};

接下来,定义一个对象,该对象保存卡片的vector并对其进行操作。我们称之为Deck
class Deck {
  public:
    Deck();

  private:
    vector <Card> cards;
};

现在,在Deck类中,您可以根据需要初始化纸牌集合。
Deck::Deck() {
  for (int suit = 0; suit < 4; suit++) {
    for (int rank = 0; rank < 13; rank++) {
      cards.push_back(Card(suit, rank));
    }
  }
}

关于c++ - 我想创建一个 vector 来容纳类(class),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4393603/

10-13 07:05