📄 ctextquery.cpp
字号:
# include "CTextQuery.h"
void TextQuery::store_file(std::ifstream& in)
{
string content;
while(getline(in,content))
lines_of_text.push_back(content);
}
void TextQuery::build_map()
{
string word;
vector<string>::iterator it=lines_of_text.begin();
line_no line=1;
while(it!=lines_of_text.end())
{
istringstream strstream(*it);
while(strstream>>word)
{
word_map[clean_up(word)].insert(line);
}
it++;
line++;
}
/* while(line<lines_of_text.size())
{
istringstream strstream(lines_of_text[line]);
while(strstream>>word)
{
word_map[word].insert(line);
}
++line;
}
cout<<"Debuging end"<<endl;*/
}
set<TextQuery::line_no> TextQuery::run_query(const std::string& str) const
{
map<string,set<line_no> >::const_iterator it=word_map.find(str);
if(it==word_map.end())
return set<TextQuery::line_no>();
else
return it->second;
}
TextQuery::line_no TextQuery::size() const
{
return lines_of_text.size();
}
string TextQuery::clean_up(string& word)
{
string str;
string::iterator it=word.begin();
while(it!=word.end())
{
if(!ispunct(*it))
str+=tolower(*it);
it++;
}
return str;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -