【描述】 输入若干个整数,当输入0时表示结束,统计每个输入整数的出现次数。 【输入】 输入若干个整数,整数之间以空格间隔,当输入0时表示结束。 【输出】 分行输出每个整数出现的次数。行末不能有多余空格。 【输入示例】 11 22 35 68 97 63 22 68 11 0 【输出示例】 11: 2 22: 2 35: 1 63: 1 68: 2 97: 1 【提示】 可以使用map来保存二元组<输入整数,出现次数>。
#include<iostream> #include<string> #include<sstream> #include<algorithm> #include<cctype> #include<iomanip> #include<cmath> #include<cstdlib> #include<vector> #include<deque> #include<list> #include<set> #include<iterator> #include<map> using namespace std; int main(){ int n,count=0; map<int,int>m; while(cin>>n){ if(n==0) break; map<int,int>::iterator p; p=m.find(n); //用于查找相同的元素 if(p==m.end()) m.insert(pair<int,int>(n,1)); //如果没有,则新建二元组 else{ count=m.find(n)->second; //成功,记录次数 m.erase(n); //删除原来的二元组 m.insert(pair<int,int>(n,++count)); } } for(auto pos=m.begin();pos!=m.end();++pos) cout<<pos->first<<": "<<pos->second<<endl; return 0; }