我在这里找到了这段代码。编译器如何知道使用classcomp中定义的函数?
结构/功能
struct classcomp
{
bool operator() (const char& lhs, const char& rhs) const
{
return lhs<rhs;
}
};
地图建设
map<char,int,classcomp> fourthm;
构造函数原型:
explicit map ( const Compare& comp = Compare(),const Allocator& = Allocator() );
template <class InputIterator> map ( InputIterator first, InputIterator last,const Compare& comp = Compare(), const Allocator& = Allocator() );
map ( const map<Key,T,Compare,Allocator>& x );
它使用classcomp类的默认构造函数,因此您得到一个定义了operator()并像函数一样工作的对象。