Python文本查询代码怎么写
导读:本文共1092.5字符,通常情况下阅读需要4分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: //文本查询// 要做的事情//1、把一个文本 的每一行 放入 vector 中。// 2、记录每一个单词的行号// 3、根据行号输出每行单词。class TextQuery{public:typedef vector<string>::size_type line_no;void store_file( ifstream& is);set&... ...
目录
(为您整理了一些要点),点击可以直达。//文本查询
// 要做的事情
//1、把一个文本 的每一行 放入 vector 中。
// 2、记录每一个单词的行号
// 3、根据行号输出每行单词。
class TextQuery
{
public:
typedef vector<string>::size_type line_no;
void store_file( ifstream& is);
set<line_no>print_lineno(string& )const;
stringprint_linestring(line_no)const ;
private:
vector<string>line_of_text;
map<string , set<line_no> >word_map;
};
void TextQuery::store_file(ifstream& is)
{
string word;
while ( getline( is,word ) )
{
line_of_text.push_back(word);
}
line_no num;
for( num=0; num != line_of_text.size(); ++num )
{
string line, tempword;
istringstream istream(line_of_text[num]);
while ( istream>> word)
{
word_map[word].insert(num);
}
}
}
set<line_no> TextQuery::print_lineno(string& str)
{
map<string, set<line_no> >::iterator iter = word_map.find(str);
if (iter == word_map.end())
{
return set<line_no>();
}
return iter->second;
}
string TextQuery::print_linestring(line_no num)
{
if ( num< line_of_text.size())
{
return line_of_text[num];
}
}
void print_result(const set<TextQuery::line_no>& los, const string& str, const TextQuery & textclass)
{
cout<<"str:"<<str<<"total num:"<<los.size()<<endl;
set<TextQuery::line_no>::iterator iter=los.begin();
for (; iter != los.end();++iter)
{
cout<< *iter+1 <<textclass.print_linestring(*iter)<<endl;
}
}
void main( void )
{
}
Python文本查询代码怎么写的详细内容,希望对您有所帮助,信息来源于网络。