我在我的项目中有几张地图,我不知道,如何使用或简单地说:我不知道如何从地图上获取一些信息,连接。map <string,class>使用和couting
我的代码(item.h):
#ifndef ITEM_H
#define ITEM_H
class Item
{
public:
int level, durability, damage, armor, weight, grade, sex;
Item(int _level, int _durability, int _damage, int _armor, int _weight, int _grade, int _sex);
Item();
virtual ~Item();
protected:
private:
};
#endif // ITEM_H
代码(item.cpp):
#include "include/Item.h"
Item::Item(int _level, int _durability, int _damage, int _armor, int _weight, int _grade, int _sex)
{
level = _level;
durability = _durability;
damage = _damage;
armor = _armor;
weight = _weight;
grade = _grade;
sex = _sex;
}
Item::Item(): level(0), durability(20), damage(0), armor(0), weight(1), grade(1), sex(0)
{
//dtor
}
Item::~Item()
{
//dtor
}
码(main.cpp中):
std::map<std::string, Item> item;
// level, durability, damage, armor, weight, grade, sex
item.insert(std::pair<std::string, Item>("Wooden Sword", Item(1, 19, 3, 0, 1, 1, 0)));
如何从地图选定的数组中的一些信息?试图在谷歌搜索等无法找到答案,解释为什么会出现错误,如果我尝试这样:
cout << item["Wooden Sword"]["level"];
出于什么目的,你可以使用item.find("Wooden Sword"); ?
怎么做带班地图工作?我如何从具有类的地图中选择数据。提前真的很感谢。 :)希望我解释我想要什么,并给你你需要的一切。
'item [“Wooden Sword”]'返回一个对与'木剑'键相关的'Item'对象的引用。如果你想打印这个'Item'的内容,提供一个'ostream&operator <<(ostream &&,Item const&)'重载,或者如果你想要的只是关卡的话,可以使用'cout << item [“Wooden Sword”] .level;' – Praetorian
如果您需要在运行时指定字段名称,您可以添加到您的'Item'类:'int&operator [](const std :: string&fieldname){if(fieldname ==“level”)return水平;否则,如果(fieldname ==“durability”)返回耐久性; else ... else throw std :: runtime_error(“unknown Item field”); }'和/或'int operator [](const std :: string&fieldname)const {<与上面相同的主体>}'。 –