文字查詢程式(C primer5th)

2021-07-25 04:08:05 字數 1584 閱讀 8982

書上的乙個比較簡單的例題,可以輸出文字中單詞總共出現的次數,所在的行數及所在行的內容。

主要的思路是建立乙個vector來分行儲存文字,然後將單詞及單詞出現行數(set)建立乙個map。通過查詢單詞獲得其對映的set。set的size為出現的次數,set的元素為出現的行數,通過set元素作為vector下標獲得所在行內容。

1、textquery.h

#pragma once

#include

#include

#include

#include

#include

#include

#include

#include

//不要在標頭檔案裡包含太多頭檔案,一般包含在cpp中

using

namespace

std;

class queryresult; //先宣告後使用。要返回內容多,最簡單的方法是定義乙個類

class textquery

;

2、textquery.cpp

#include "textquery.h"

#include "queryresult.h"

textquery::textquery(ifstream &is):file(new

vector

)lines->insert(n); //將行號插入set,如果重複則不執行任何操作}}

}textquery::~textquery()

queryresult textquery::query(const

string &sought)const

else

}

3、queryresult.h

#pragma once

#include "textquery.h"

class queryresult

private:

string sought; //查詢的單詞

shared_ptr

> lines; //包含的行數

shared_ptr

> file; //輸入檔案

};

4、main.cpp

#include "queryresult.h"

#include "textquery.h"

int main()

ostream &print(ostream &os, const queryresult &qr)

return os;

}void runquery(ifstream &file)

print(cout, tq.query(s)) << endl;

}}

文字查詢程式c primer12 32

標頭檔案strblob以及strblobptr 根據題目要求用自己定義的strblob來代替vector來儲存輸入檔案 可以更加安全的共享底層資料 include include include include include using namespace std class strblob st...

c primer習題10 6 文字查詢程式

ifndef textquery h define textquery h include include include include include includeusing namespace std class text query setrun query const string co...

文字查詢程式

我們實現乙個簡單的文字查詢程式。我們的程式允許使用者在乙個給定檔案中查詢單詞,查詢結果是單詞在檔案 現的次數及所在行的列表。如果乙個單詞在一行 現多次,此行只列出一次。include include include include include include include include us...