问题描述:

输入一个单词列表,每行一个单词,统计单词出现的频率

思路:

主要是使用c++中的map容器。map实质上是一个二叉查找树,可以做到插入、删除、查询,平均查询时间在O(logn)。n为map中元素的个数,将字符串数据插入到map后,再用迭代器去访问map中的元素时,其实是按照map中插入的字符串的字典序进行访问的。

map可以建立任意两种数据类型的关系,形式为map<type1,type2>map1。type1表示键key,type2表示值value。键是用来进行索引。

源代码:

 #include <iostream>
#include <string>
#include <map>
using namespace std; int main()
{
string word; //输入单词
int amount = ; //单词总数
map<string, int> word_count;
while(cin>>word)
{
word_count[word]++;
amount++;
}
cout.setf(ios::fixed);//以定点形式表示浮点数
cout.precision();//设置小数部分的有效数字
map<string, int>::iterator it = word_count.begin();
while( it != word_count.end())
{
double rate =*(double) it->second / amount;
cout << it->first << " "<< rate <<"%"<<endl;
it++;
}
return ;
}

最新文章

  1. 嵌入式Linux学习笔记(0)基础命令。——Arvin
  2. Android使用SQLite数据库(2)
  3. Spring--Spring容器
  4. 学习使用vim,熟悉Linux
  5. 一致性hash和solr千万级数据分布式搜索引擎中的应用
  6. windows下如何使用makefile编译
  7. 关于android软键盘enter键的替换与事件监听
  8. html在图片上实现下雨效果
  9. OpenGL ES 2.0 摄像机与投影
  10. python基础学习05(核心编程第二版)部分
  11. ASP.NET MVC 阻止当前请求的视图页面缓存OutputCache
  12. iphone手机中对于html和css的一些特殊处理
  13. ado.net的简单数据库操作(一)
  14. MFC应用技术之CTreeControl的使用
  15. Python之随机梯度下降
  16. 1-3Controller之Response
  17. H5 边框:带border的百分比布局
  18. JavaScript之String总汇
  19. 001.DNS原理及配置格式
  20. JavaScript语言简介

热门文章

  1. zoj 3197 Google Book
  2. 反射以及 getDeclaredMethods()和getMethods()区别
  3. Android应用开发基础篇(6)-----Service
  4. python列表类型中的陷阱
  5. IOS 使用IOS6苹果地图
  6. IOS 学习笔记(1) 视图UIViewController
  7. 27_Blog Reader
  8. [置顶] MongoDB 分布式操作——分片操作
  9. HDU 1398 Square Coins
  10. c++ enum用法【转】