码迷,mamicode.com
首页 > 其他好文 > 详细

面试笔试题

时间:2020-03-23 09:34:18      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:code   ++   之间   iterator   bsp   删掉   ring   str   ios   

 

1.  文本文件里面有很多单词(单词与单词之间以空格、换行符隔开,且不管单个单词的正确性),统计各单词出现的次数,删掉出现次数最少的那些

  实现:fstream读入事先准备好的文件test.txt,存到C++的关联容器map,用单词string做key,出现的次数int做value,找到最小的value,然后回写到testout.txt

map<string,int> word_count;
fstream rwfile;
string str;
int min = 0;
rwfile.open("E:/code/C++/TestCPlus/test.txt",ios_base::in);
if(!rwfile) {
     cout<<"open file error\n";
     return;
}
while(rwfile>>str) {
    word_count[str] ++;
    int count = word_count[str];
    if(min == 0) {
        min = word_count[str];
    }
    if(min>count) {
        min = count;
    }
}
//文件中所有单词和次数都存到map里面了,且找到了最小次数
rwfile.close();
rwfile.open("E:/code/C++/TestCPlus/testout.txt",ios::out | ios::trunc);
map<string,int>::iterator iter = word_count.begin();
while(iter != word_count.end()) {
    if(iter->second != min) {
        rwfile<<iter->first<<"  ";
    }
    ++iter;
}
rwfile.close();

 

面试笔试题

标签:code   ++   之间   iterator   bsp   删掉   ring   str   ios   

原文地址:https://www.cnblogs.com/taoXiang/p/12520090.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!