當前位置:成語大全網 - 新華字典 - 那個大俠給這個c++程序加了註釋,應該更詳細。

那個大俠給這個c++程序加了註釋,應該更詳細。

布爾IDX::分析文檔(常量字符串& ampDocName) //解析文檔

{

ifstream inDoc(docname . c _ str());//構造壹個文件對象

如果(!InDoc) //無法構造對象,返回

{

返回false

}

unsigned int docId = lower _ bound(doclist . begin()、docList.end()、docName)-doclist . begin();//查找docName在列表中的位置,如果沒有找到則返回。

if ( docId == docList.size())

{

返回false

}

字符串curDoc//聲明壹個字符串對象

curdoc . reserve(MAX _ DOCSIZE);//確定緩沖區大小

getline ( inDoc,curDoc,inDoc . widen(EOF));//獲取所有內容

curDoc+= " ";

string word,engword

int englen = 1;

for(int I = 0;我& lt= curdoc . size()-8;++i) //遍歷

{

if(isChinese(curDoc[I])& amp;& ampis Chinese(curdoc[I+2])//如果是中文,輸入以下邏輯。

{

for(int j = 8;j & gt=4;j-=2)

{

word = curDoc.substr ( i,j);//壹次截取兩個字符

if(is Chinese(word[word . size()-2])& amp;& ampisChinese(word[word.size()-2])

{

If (bqueryCHdic( word)) //如果是中文,查字典,找到,處理,設置。

{

set ( word,docId);

I = I+j-1;

打破;

}

}

}

}

else if(al _ is letter(curdoc . at(I))& amp;& ampal _ is letter(curdoc . at(I+1)))

{

englen = 1;

while(al _ is letter(curDoc[I+englen])

{

englen++;//如果是字符,那麽數字是遞增的。

}

engword = curDoc.substr(i,englen);

turn 2 lower(eng word);//獲取字符並使其小寫。

//vec . push _ back(eng word);

setEN(engword,docId);

I = I+englen;

}

}

返回true//返回

}