Итак, в основном мне нужно создать функцию stati c, которая возвращает элемент выбора из карты на основе ввода. (Должен быть stati c, поскольку он должен быть доступен без объекта).
class Keys { //only one instance will be created, same for all instances
protected:
int ID ;
string itemName ;
static map<string, int> mapNameToItem;
static map<int, string> mapItemToName;
public:
Keys(vector<string>names, vector<int> ids);
static int NameToItem(string inputted_name) ;
static string ItemToName(int inputted_int) ; };
Вот его реализация:
Keys::Keys(vector<string>names, vector<int> ids)
{
for(vector<string>::iterator it = begin(names); it != end(names); it = next(it))
{
for(vector<int>::iterator itz = begin(ids); itz != end(ids); itz = next(itz))
{
mapNameToItem.insert(pair<string,int>(*it,*itz));
mapItemToName.insert(pair<int, string>(*itz,*it));
}
}
}
int Keys::NameToItem(string inputted_name)
{
return mapNameToItem[inputted_name] ;
}
string Keys::ItemToName(int inputted_int)
{
return mapItemToName[inputted_int] ;
}
Есть ли у кого-нибудь исправление (кроме включения stati c в его реализацию, поскольку это не работает)? Спасибо.