程序代码如下:程序中有说明要返回的地方
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;
}

解决方案 »

  1.   

    晕,lines_of_text那儿定义的?????????
      

  2.   

    typedef pair<short, short> location;
    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;
    };这是头文件,其他的代码太多了,上面的东西都定义过了,我目前就需要它的返回值!!
      

  3.   

    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;
                               //这样就可以
                               CString = lines_of_text[line].c_str();
    }
    }
    while (!query_text.empty());
    return;
    }