Hi, all
its me again!
I got really stuck by the STL library and do not know how to correct that.

Here is my class code:

class A
{
public:
    A( const string& filename )
    {
       ifstream file(filename.c_str()) ;
        string word;
       while( file >> word)
       {
	  _word_list.push_back(word);
        }
      }
    StringIntVector topNWords(size_t n) const;
     bool isnotpuct() const;
    // this function is to judge weather the text inside the file
    // is punctuations.
private:
    vector<string> _word_list;

};

Here is my isnotpuct() function

bool TextUtil::isnotpuct() const
{
        for(size_t i=0; i<_word_list.size(); i++)
     {
       for(size_t j=0; j<_word_list[i].length();j++)
        if(ispunct(_word_list[i][j]))
            return false;
        else
            return true;
      }
}

Here is my topNWords function

//stringvector is the type--
//typedef vector< pair < string, int > > StringIntVector;

StringIntVector TextUtil::topNWords(size_t n) const
{
    map<string, int> freq;
   StringIntVector vRet;
    for(size_t i=0; i<_word_list.size(); i++)
  {
     if(isnotpuct())
    {
      string words = _word_list[i];
      size_t topn = wordCount(words);
      freq[words] = topn;
    }
   }
    sort(freq.begin(),freq.end());
    map<string, int>::const_iterator iter;
    for (iter=freq.begin(); iter != freq.end(); iter++)
    {
        vRet.push_back(*iter);
    }
      return vRet;

So i got the error message

Error    2    error C2784: 'bool std::operator ==(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)' : could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::basic_string<_Elem,_Traits,_Ax>'

Which i was thinking it may caused by the bool isnotpuct() function
am i correct??
So how to correct it??
Many thanks.

This article has been dead for over six months. Start a new discussion instead.