用map泛型隐式调用二叉排序树
#include <stdio.h>
#include <map>
#include <string>
using namespace std;
map<string, unsigned int> record;
char tmp[100];
int main(void){
string key;
unsigned int cnt;
//freopen("input.dat", "r", stdin);
cnt = 0;
while(gets(tmp)){
key = tmp;
if(record.find(key) == record.end())
record[key] = 1;
else
record[key]++;
cnt++;
}
for(map<string, unsigned int>::iterator it=record.begin(); it!=record.end(); it++){
printf("%s %.4lf\n", (it->first).c_str(), (it->second)/(double)(cnt)*100.0);
}
return 0;
}