哇哦~这就是我

This is my way ~
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

  • 随笔 - 10
  • 文章 - 0
  • 评论 - 2
  • 引用 - 0

常用链接

留言簿(1)

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

C++第五次上机作业(提高)

 

#include<iostream>
#include
<sstream>
#include
<map>
#include
<string>
#include
<vector>
#include
<iomanip>
#include
<fstream>
#include
<algorithm>
using namespace std;
typedef map
< string , vector<int> > WORD;
void init ( WORD 
& m )
{
 ifstream fin;
 fin.open(
"keywords.txt");
    
string keyword;
    
while ( fin>>keyword )
        m[keyword];
 fin.close();
}
void count ( WORD 
& m )
{
    
int line=0;
 ifstream fin;
 fin.open(
"text.txt");
    
string str;
    
while ( getline(fin,str) )
    {
  line
++;
  
for ( WORD::iterator iter = m.begin () ; iter!=m.end( ); iter++ )
   
if ( str.find ( iter->first )!=string::npos )
    m[iter
->first].push_back(line);
    }
 fin.close();
}
void only( WORD 
&m )
{
 
for ( WORD::iterator i=m.begin() ; i!=m.end(); i++ )
 {
  vector
<int>::iterator  new_end=unique(i->second.begin(),i->second.end());   
  i
->second.erase(new_end,i->second.end());   
 }
}
void sort_list ( WORD m , map
<int,string> &mm )
{
 
for ( WORD::iterator iter_m = m.begin() ; iter_m != m.end() ; iter_m++ )
  mm[iter_m
->second .size ()]=iter_m->first; 
}
void output ( WORD m , map
<int,string> mm )
{
    
string keyword;
 
for ( map<int,string>::reverse_iterator iter=mm.rbegin() ; iter!=mm.rend() ; iter++ )
    {
        cout
<<setw(10)<<iter->second<<":"
            
<<"(";
  
for ( vector<int>::iterator iter_vector=m[iter->second].begin() ; iter_vector!=m[iter->second].end(); iter_vector++ )
        {
            
if ( iter_vector!=m[iter->second].begin() )
                cout
<<",";
            cout
<<*iter_vector;
        }
        cout
<<")"<<endl;
    }
}
int main  ()
{
    WORD m;
 map
<int , string> mm;
    init(m);
    count(m);
 sort_list(m,mm);
 only(m);
    output(m,mm);
}

posted on 2008-04-02 23:21 chinaeli 阅读(239) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理