c++第8章STL7-5 统计英文单词个数

7-5 统计英文单词个数 (20分)

给出一篇英文文章,现在需要统计文章中出现英文单词的数量。
输入格式:

第一行一个T,代表数据组数

对于每组数据,第一行一个n,代表文章中单词的个数,其后n行每行一个只包含小写字母的长度为1到10的字符串
输出格式:

每组数据输出若干行,每行输出单词以及它出现的次数(中间空格隔开),不同单词按单词字典序从小到大输出

保证单词出现的总次数<=1e5
输入样例:

1
8
it
is
a
pen
it
is
a
dog

输出样例:

a 2
dog 1
is 2
it 2
pen 1

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int T,n;//T组数据  n表示每组n个单词
    cin>>T;//输入T组数据
    while(T--)
    {
        cin>>n;
        multiset<string> s;//用 multiset 存储元素  创建对象 s
        string str;
        for(int i=0; i<n; i++)
        {
            cin>>str;
            s.insert(str);//向集合容器中插入字串 str
        }
        auto s1=s.begin();//it1返回容器的初始迭代器
        if(s1!=s.end())//it1不等于最后的元素
        {
            cout<<*s1<<" "<<s.count(*s1)<<endl;
        }
        for(auto s2=s.begin(); s2!=s.end(); s2++)
        {
            if(*s2!=*s1)
            {
                cout<<*s2<<" "<<s.count(*s2)<<endl;
                s1=s2;
            }
        }
    }
    return 0;
}

set 和 multiset 都是集合 存储一组相同数据类型的元素。
区别 set存储的数据互不相同
multiest 允许存在相同的元素

全部评论

相关推荐

点赞 评论 收藏
转发
点赞 收藏 评论
分享
牛客网
牛客企业服务