程序代码如下:程序中有说明要返回的地方
void TextQuery::query_text(CString m_strSearchText)
{
string query_text=m_strSearchText; do
{
if (!word_map->count(query_text))
{
AfxMessageBox("对不起!找不到您要查找的词。");
return;
} loc *ploc = (*word_map)[query_text]; set<short> occurrence_lines;
loc::iterator liter = ploc ->begin(),
liter_end = ploc ->end(); while (liter != liter_end)
{
occurrence_lines.insert(occurrence_lines.end(),(*liter).first);
++liter;
} set<short>::iterator it = occurrence_lines.begin();
for (; it != occurrence_lines.end(); ++it)
{
//int line = *it;
在这里返回(*lines_of_text)[line]的值,怎么办?
//(*lines_of_text)[line];//显示在面板上
}
}
while (!query_text.empty());
return;
}
void TextQuery::query_text(CString m_strSearchText)
{
string query_text=m_strSearchText; do
{
if (!word_map->count(query_text))
{
AfxMessageBox("对不起!找不到您要查找的词。");
return;
} loc *ploc = (*word_map)[query_text]; set<short> occurrence_lines;
loc::iterator liter = ploc ->begin(),
liter_end = ploc ->end(); while (liter != liter_end)
{
occurrence_lines.insert(occurrence_lines.end(),(*liter).first);
++liter;
} set<short>::iterator it = occurrence_lines.begin();
for (; it != occurrence_lines.end(); ++it)
{
//int line = *it;
在这里返回(*lines_of_text)[line]的值,怎么办?
//(*lines_of_text)[line];//显示在面板上
}
}
while (!query_text.empty());
return;
}
typedef vector<location> loc;
typedef vector<string> text;
typedef pair<text*, loc*> text_loc;class TextQuery
{
public:
TextQuery()
{
// memset(this, 0, sizeof(TextQuery));
CString file_name = " ";
} static void filter_elements(string felems)
{
filt_elems = felems;
}
CString query_text(CString m_strSearchText, CString line);
// void display_map_text();
// void display_text_locations(); void retrieve_text();
void separate_words();
void filter_text();
void build_word_map(); CString file_name; public:
vector<string> *lines_of_text;
text_loc *text_locations;
map<string, loc*> *word_map;
static string filt_elems;
};这是头文件,其他的代码太多了,上面的东西都定义过了,我目前就需要它的返回值!!
{
string query_text=m_strSearchText; do
{
if (!word_map->count(query_text))
{
AfxMessageBox("对不起!找不到您要查找的词。");
return;
} loc *ploc = (*word_map)[query_text]; set<short> occurrence_lines;
loc::iterator liter = ploc ->begin(),
liter_end = ploc ->end(); while (liter != liter_end)
{
occurrence_lines.insert(occurrence_lines.end(),(*liter).first);
++liter;
} set<short>::iterator it = occurrence_lines.begin();
for (; it != occurrence_lines.end(); ++it)
{
int line = *it;
//这样就可以
CString = lines_of_text[line].c_str();
}
}
while (!query_text.empty());
return;
}