C++设计相应的数据结构和算法,,尽量高效的统计一篇英文文章(总单词数)里出现的所有英文单词,按照在文章中

按照在文章中首次出现的顺序打印输出该单词和它的出现次数... 按照在文章中首次出现的顺序打印输出该单词和它的出现次数 展开
 我来答
n2xiong
2011-09-27 · 超过13用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:19.9万
展开全部
用二叉平衡树就可以做到,树中每一个节点是一个单词,按照字典序比较单词的大小。按出现顺序输出的话,可以在每个节点上记录出现顺序,排序即可。复杂度O(nlogn)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
reverse_walker
2011-09-27 · TA获得超过590个赞
知道小有建树答主
回答量:377
采纳率:0%
帮助的人:461万
展开全部
#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <utility>
#include <fstream>
#include <cassert>
using namespace std ;

template<class _t1, class _t2>
void pairprnt( const pair< _t1, _t2 > pa )
{
cout << pa.first << " " << pa.second << endl ;
}

void WordCalc( char* pszFilename )
{
ifstream fs( pszFilename ) ;assert( fs ) ;//文件流
string str ;
map<string, int> m ;
while( fs >> str, m[str]++, fs ) ;//读入,统计,判断流状态
for_each( m.begin(), m.end(), pairprnt<string,int> ) ;//打印
}

int main()
{
WordCalc( "d:/delete/readme.txt" ) ;
}

STL makes life easy!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式