(1). 輸出模塊:輸出結果到result.txt文件
(2). 構造和析構函數:類的構造和析構函數
(3). 文件長度函數:獲取輸入文件長度
(1). 輸出模塊:輸入一個vector結構,輸出一個result.txt文件
(3). 文件長度函數:輸出文件長度
(1). 輸入模塊:讀取文本爲一個字符串對象
(2). 主函數:調用其餘小組成員的接口,是主要邏輯
(1). 輸入模塊:輸出一個字符串對象
(2). 主函數: 無
WC::WordMap word_count(string buff) {
WC::WordMap smap;
regex rgx("[A-Za-z]+([A-Za-z-]?[A-Za-z]+)*");
sregex_token_iterator iter(buff.begin(), buff.end(), rgx);
sregex_token_iterator end;
for (; iter != end; ++iter) smap[*iter]++;
return smap;
}
我仔細地閱讀了google style guide,在include頭文件順序方面,我以前一直都沒有一個很好的指導規範,在閱讀了這個文檔以後,瞭解到應以本文件對應頭文件、C系統文件、C++系統文件、其餘庫的.h文件、本項目內的.h文件的順序來include
而關於類的繼承方面這一塊我以前都不怎麼熟悉,在閱讀以後瞭解到使用組合經常比使用繼承更合理. 若是使用繼承的話, 定義爲 public 繼承的準則
高級任務
一.測試數據
咱們找了莎士比亞全集的英文版txt文檔,有5Mb大小
使用這個數據,咱們測試後發現大體須要3秒的時間才能處理完整個文件,運行截圖以下:

二.組內評審
針對可能影響程序性能(制約因素),咱們小組進行了組內評審,討論。
主持:
庹舒月
評審:
唐明華、辜之皓、俞亮
評審主題:
1.影響程序性能的主要因素
2.有何建議
討論結果:
咱們討論以後認爲,主要的性能瓶頸在於須要讀取整個文件以後再開始統計,由於磁盤讀寫的速度很是慢,致使了整個程序運行效率低
解決方案:
使用多線程,一邊讀取數據,一邊開始統計讀取部分的數據,以後再將各個部分的統計結果合併,能夠大大提升性能
三.修改以後的結果
修改以後程序性能有了成倍的提升,運行時間大概在0.7秒左右,提升了大約4倍的性能
運行截圖以下:

四.心得體會
本次做業讓我大大認識到了軟件測試和實際開發的密不可分的關係
參考連接:
1. c++參考手冊:
http://zh.cppreference.com/
2. goole style guide:
https://github.com/google/styleguide/