• C++Primer笔记——文本查询程序(原创,未使用类)


     1 #include <iostream>
     2 #include <vector>
     3 #include <set>
     4 #include <map>
     5 #include <fstream>
     6 #include <sstream>
     7 #include <string>
     8 
     9 using namespace std;
    10 
    11 int main()
    12 {
    13     ifstream in;
    14     in.open("C:\Users\HP\Desktop\passage.txt");
    15     vector<string>row;                   //使用vector<string>来保存整个输入文件的一份拷贝,输入文件的每行保存为其中的每一个元素
    16     map<string, set<int>>word_and_row;   //使用map将每个单词与它出现的行号set关联起来,使用set可以保证行号不会重复且升序保存
    17     string s;
    18     while (getline(in, s))
    19     {
    20         row.push_back(s);
    21     }
    22     for (size_t i = 0; i < row.size(); ++i)
    23     {
    24         string word;
    25         istringstream read(row[i]);     //使用istringstream来将每行分解为单词
    26         while (read >> word)
    27             word_and_row[word].insert(i);
    28     }
    29     
    30     string s1;                          //s1为待查找的单词。注意:待查找的单词不能与句号或逗号连在一起!
    31     while (cin >> s1 && s1 != "q" )     //输入q时终止输入
    32         if (word_and_row.find(s1) != word_and_row.end())
    33         {
    34             int i = word_and_row[s1].size();
    35             cout << s1 << " occurs " << i << " times" << endl;
    36             for (auto d : word_and_row[s1])
    37                 cout << "(line " << d + 1 << ") " << row[d] << endl;
    38             
    39         }
    40         else
    41         {
    42             cout << "This word can not be found in this passage! Please input a word again: " << endl;    
    43         }
    44     in.close();
    45 
    46     return 0;
    47 }
  • 相关阅读:
    Gatling的进阶二
    scala环境搭建
    web性能测试的新利器
    Jmeter+jenkins接口性能测试平台实践整理(二)
    Gatling的进阶一
    [经验总结]利用xlstproc处理XSLT的makefile
    VBA在WORD中给表格外的字体设置为标题
    VBA赋值给指定单元格
    将压缩包隐藏到图片中
    DB2删除重复数据
  • 原文地址:https://www.cnblogs.com/FengZeng666/p/9290082.html
Copyright © 2020-2023  润新知