C++ 我想创建一个向量来保存类
我很困惑如何制作一个向量来保存类。 如果我想在一个向量中保存一组数据,如下面的示例所示。然后将数据写入一个类成员函数中,并能够被其他函数调用和使用 向量声明贴在哪里? 请帮忙C++ 我想创建一个向量来保存类,c++,class,vector,C++,Class,Vector,我很困惑如何制作一个向量来保存类。 如果我想在一个向量中保存一组数据,如下面的示例所示。然后将数据写入一个类成员函数中,并能够被其他函数调用和使用 向量声明贴在哪里? 请帮忙 #include <vector> class Card { public: int suit; int rank; Card::Card(int suit, int rank); Function(); }; vector<Card> cards; i
#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);
}
#包括
班级卡
{
公众:
内服;
整数秩;
卡片::卡片(整数套装,整数等级);
函数();
};
向量卡;
int main()
{
}
卡片::函数()
{
对于循环。。。
卡德兹(i,i);
卡片。向后推(cardz);
}
这里有两个简单的选项。在头文件中使用extern
声明更接近您编写的内容:
// something.h
extern vector<Card> cards;
// something.cpp
vector<Card> cards;
静态
成员可以像任何其他成员一样是公共
或私有
。如果它是public
,任何不在Card
方法中且使用cards
的代码都必须将其称为Card::cards
无论哪种方式,您都必须弄清楚如何使用所需的内容对其进行初始化……这里有两个简单的选项。在头文件中使用
extern
声明更接近您编写的内容:
// something.h
extern vector<Card> cards;
// something.cpp
vector<Card> cards;
静态
成员可以像任何其他成员一样是公共
或私有
。如果它是public
,任何不在Card
方法中且使用cards
的代码都必须将其称为Card::cards
无论哪种方式,您都必须弄清楚如何使用所需的内容对其进行初始化……在我看来,您正在扩展
卡
对象应该做的事情的范围。我可以建议如下布局吗?首先定义一张卡
接下来,定义一个对象,该对象包含卡片的向量
,并对其进行操作。让我们称之为Deck
class Deck {
public:
Deck();
private:
vector <Card> cards;
};
在我看来,您正在扩展
卡
对象应该做的事情的范围。我可以建议如下布局吗?首先定义一张卡
接下来,定义一个对象,该对象包含卡片的向量
,并对其进行操作。让我们称之为Deck
class Deck {
public:
Deck();
private:
vector <Card> cards;
};
有很多例子,例如@ NIKOLAI N FISTSOVIM IM使用VisioExpress C++,我不想与Linux乱成一团,尤其是因为IM已经困惑,谢谢!在Linux中,编程实际上非常简单,也不那么复杂。
卡的定义唯一明显的错误是它应该是std::vector
,而不是vector
。您可能希望将卡
设置为类卡
的静态数据成员,我不确定。另外,您的构造函数Card::Card
应该是Card
,而Function
需要一个返回类型。“哪一个特定的编译器错误是困扰你的?”@ FalMARRI与Linux相比,更容易,我只需要确保它在Windows上工作,有很多例子,例如@ NIKOLAI N FISTSOVIM IM使用VisioExpress C++,并且我不想与Linux混淆,特别是因为IM已经混淆了,谢谢!在Linux中,编程实际上非常简单,也不那么复杂。卡的定义唯一明显的错误是它应该是std::vector
,而不是vector
。您可能希望将卡
设置为类卡
的静态数据成员,我不确定。另外,您的构造函数Card::Card
应该是Card
,而Function
需要一个返回类型。哪个特定的编译器错误困扰着你?@falmari linux的一切都比较简单,我只需要确保它在Windows上工作。你需要知道向量可能会对它包含的项做什么-特别是复制。你需要知道向量可能会对它包含的项做什么-特别是复制。
Deck::Deck() {
for (int suit = 0; suit < 4; suit++) {
for (int rank = 0; rank < 13; rank++) {
cards.push_back(Card(suit, rank));
}
}
}