文本查询 没写完代码
来源:互联网 发布:淘宝商城城 编辑:程序博客网 时间:2024/06/02 11:23
//文本查询
// 要做的事情 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 )
{
}
- 文本查询 没写完代码
- 没写完
- 上一个没写完,怎么感觉代码没写好。。哎
- 标题还没写完
- 时间 没写完
- 词典(没写完)
- Oracle 日志的编写与查询的一种方法(还没写完)
- 计算器(没写完呢)
- 保存一下,还没写完
- 继续没写完的章节
- 7.18 刚写完代码
- 昨天没写完扔在桌面的
- {YiGeZiWoJianJie}个人简历(还没写完呢)
- 寻路小例子 没写完(待续)
- 万恶写完的都没了
- C++控制台,画圆,正方形,正三角形。。。没写完。。
- ftp相关方法,下载没写完
- 写了一半没写完,备份一下吧
- 做好一个team leader的几点看法
- jq弹出层(博思人才网)
- c#注销
- JAVA中正则表达式的应用 (一)
- linux内核input子系统解析
- 文本查询 没写完代码
- [SQL Server] 十进制转换为二进制——函数
- string 转 hex string 并转回来
- JSP 自己写的在JSP页面得到文件的服务器路径,并对XML文件进行读写(以对Tomcat的conf目录中的context.xml文件为例)
- JSP自定义标签由浅到深讲解
- JAVA中正则表达式的应用 (二)
- Servlet 3.0 新特性详解
- linux odbc 访问数据库
- PS2接口标准及嵌入式编程