#include <iostream>
#include <string>
#include <map>using namespace std;
typedef map<string, string, less<int> > INT2STRING;void main()
{
    INT2STRING theMap;
    INT2STRING::iterator theIterator;
    string theString = "";
    theMap["abc"]="def";
  
}

解决方案 »

  1.   

    还是不行啊,编译一下,错误好多啊
    c:\program files\microsoft visual studio\vc98\include\xtree(222) : error C2664: '()' : cannot convert parameter 1 from 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const int &'
            Reason: cannot convert from 'const class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' to 'const int'
            No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
            c:\program files\microsoft visual studio\vc98\include\xtree(216) : while compiling class-template member function 'struct std::pair<class std::_Tree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,stru
    ct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct std::map<class std::basic_string<char,struct
     std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<int>,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class 
    std::allocator<char> > > >::_Kfn,struct std::less<int>,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::iterator,bool> __thiscall std::_Tree<class std::basic_string<char,struct std::ch
    ar_traits<char>,class std::allocator<char> >,struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,st
    ruct std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<int>,class std::allocator<class std::basic
    _string<char,struct std::char_traits<char>,class std::allocator<char> > > >::_Kfn,struct std::less<int>,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::insert(const struct std::pair<c
    lass std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > &)'
    c:\program files\microsoft visual studio\vc98\include\xtree(222) : error C2064: term does not evaluate to a function
            c:\program files\microsoft visual studio\vc98\include\xtree(216) : while compiling class-template member function 'struct std::pair<class std::_Tree<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,stru
    ct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,struct std::map<class std::basic_string<char,struct
     std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<int>,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class 
    std::allocator<char> > > >::_Kfn,struct std::less<int>,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::iterator,bool> __thiscall std::_Tree<class std::basic_string<char,struct std::ch
    ar_traits<char>,class std::allocator<char> >,struct std::pair<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > >,st
    ruct std::map<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >,struct std::less<int>,class std::allocator<class std::basic
    _string<char,struct std::char_traits<char>,class std::allocator<char> > > >::_Kfn,struct std::less<int>,class std::allocator<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > >::insert(const struct std::pair<c
    lass std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const ,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > &)'
      

  2.   

    you can change the statement:
    typedef map<string, string, less<int> > INT2STRING;
    to 
    typedef map<string, string> INT2STRING;
    Because the "less<int>" was used to compare the int values