在C ++中,创建一个临时容器来存储字符串和int的最简单方法就像C#字典一样,我可以轻松地将字符串键与另一个字符串匹配,并增加或减少条目值int?
容器的内容来自一个字符串,其中每个用空格分隔的单词是一个键输入,每个键的所有值都以0开头。
Dictionary<string, int> Options = new Dictionary<string, int>();
Options.Add("xyz", 0);
Options.Add("abc", 0);
Options.Add("dfg", 0);
然后我必须将它与用户选项进行比较,例如:
if (Options.ContainsKey(user_opt))
Options[user_opt]++;
我最初尝试使用矢量的东西,但由于我对C ++的了解几乎不是0,所以我大部分都被卡住了。
使用矢量这就是我得到的:
vector<string> Options;
boost::split(Options, m_StartMode, boost::is_any_of(" "));
答案 0 :(得分:5)
使用std::map
或std::unordered_map
存储密钥值。
std::map<std::string, int> Options;
Options.insert(std::make_pair("xyz", 0));
Options.insert(std::make_pair("abc", 1));
然后使用map::find
检查密钥是否存在:
std::map<std::string,int>::iterator iter;
iter = Options.find(user_opt);
if(iter != Options.end())
iter->second++;
答案 1 :(得分:2)
看看std::map
。