用于字符串和int的容器用于匹配和计数?

Gua*_*apo 0 c++ string int containers compare

在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);
Run Code Online (Sandbox Code Playgroud)

然后我必须将它与用户选项进行比较,例如:

if (Options.ContainsKey(user_opt))
    Options[user_opt]++;
Run Code Online (Sandbox Code Playgroud)

我最初尝试使用向量,但由于我对C++的了解仅为0,因此我大部分时间都处于困境.

有了矢量,这就是我得到的:

vector<string> Options;
boost::split(Options, m_StartMode, boost::is_any_of(" "));
Run Code Online (Sandbox Code Playgroud)

Aja*_*jay 5

使用std::mapstd::unordered_map存储键值.

std::map<std::string, int> Options;
Options.insert(std::make_pair("xyz", 0));
Options.insert(std::make_pair("abc", 1));
Run Code Online (Sandbox Code Playgroud)

然后map::find用来检查密钥是否存在:

std::map<std::string,int>::iterator iter;
iter = Options.find(user_opt);

if(iter != Options.end())
   iter->second++;
Run Code Online (Sandbox Code Playgroud)