如果輸入是例如「香蕉」,我想打印香蕉的千卡。我想這樣的事情(和失敗):C++:使用輸入字符串作爲變量名稱
string input;
cin >> input;
cout << input.Kcal << endl;
我知道,我可以用if語句一樣做到這一點:
string input;
cin >> input;
if(input == "banana")
{
cout << banana.Kcal << endl;
}
但是,當我有更多的話,我必須寫很多代碼1000種食品...
還有就是我聲明,我的香蕉對象的定義。每個物體都有千卡。
food banana;
banana.Kcal = 89;
我的課堂上,Food.h代碼:
#pragma once
class CFood
{
public:
CFood();
~CFood();
float Kcal;
}
的food.cpp代碼:
CFood::CFood()
{
Kcal = 0;
}
CFood::~CFood()
{
}
'的std :: unordered_map <的std :: string,CFood>'似乎合理的適合您的需求。 – WhozCraig