C++ c+中的单词计数列表+;

C++ c+中的单词计数列表+;,c++,C++,现在我正在处理UVA问题10420征服列表(链接:)。为了说明这一点,我将使问题的条件更简单。你只需要数一数输入的单词数。例如,您必须输入所有这些 Spain England England France 并输出该单词输入的次数。它必须按字母顺序输出 England 2 France 1 Spain 1 因为我不知道哪些词会出现在C++中,如何计算这个条件? 在这种情况下,通常使用标准容器 STD::MAP< /Calp> 比如说 #include <iostream> #

现在我正在处理UVA问题10420征服列表(链接:)。为了说明这一点,我将使问题的条件更简单。你只需要数一数输入的单词数。例如,您必须输入所有这些

Spain
England
England
France
并输出该单词输入的次数。它必须按字母顺序输出

England 2
France  1
Spain   1

因为我不知道哪些词会出现在C++中,如何计算这个条件?

在这种情况下,通常使用标准容器<代码> STD::MAP< /Calp>

比如说

#include <iostream>
#include <string>
#include <map>

int main()
{
   std::map<std::string, size_t> m;
   std::string word;

   while ( std::cin >> word ) ++m[word];

   for ( const auto &p : m ) std::cout << p.first << '\t' << p.second << std::endl;
}
#include <iostream>
#include <string>
#include <map>

int main()
{
   std::map<std::string, size_t> m;
   std::string word;

   while ( std::getline( std::cin, word ) && !word.empty() ) ++m[word];

   for ( const auto &p : m ) std::cout << p.first << '\t' << p.second << std::endl;
}
在这种情况下,要完成输入,您需要输入一个空字符串,即只需按enter键

如果输入是

Spain
England
England
France
输出将是

England 2
France  1
Spain   1

我想用向量,但我不知道怎么用。对我来说太复杂了。所以如果你使用++m[word],索引会像push_back()函数一样自动创建,如果在@user3022713之前的索引中找不到word,那么如果使用给定字符串作为索引的元素不存在,它将被创建。