我想知道是否有人可以帮助我打印出自定义类的列表(第一次使用容器)。
目前我有一个变量声明为:
std::list<Item> inventory;
在一个名为 player 的类中。
现在我在类(播放器)中创建了一个名为void printInventory();
.
所以我的问题是如何打印该列表中的内容。
我的Item
课程包含 3 个变量;
std::string name;
int damage;
int value;
我也有打印这些变量的功能void itemDetails();
任何帮助深表感谢。
编辑:
由于提供的答案,我知道已经解决了我的问题,这就是我所做的:
重载项目类中的输出运算符:
ostream& operator<<(ostream& os, const Item& item)
{
if (item.getTypeInt() == 0)
{
os << "Name: " << item.getName() << endl
<< "Type: " << item.getTypeString() << endl
<< "Damage: " << item.getDamage()<< endl
<< "Value: " << item.getValue() << endl;
}
else
{
os << "Name: " << item.getName() << endl
<< "Type: " << item.getTypeString() << endl
<< "HP: " << item.getHP()<< endl
<< "Value: " << item.getValue() << endl;
}
return os;
}
然后我使用了其中一个答案,但对其进行了修改,因此它没有声明另一个变量:
void Player::printInventory()
{
for(std::list<Item>::iterator it = inventory.begin(); it!= inventory.end(); ++it)
{
cout << *it;
}
cout <<"Inventroy Printed!!"<<endl;
}