我在here找到了此代码。编译器如何知道使用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 );
答案 0 :(得分:1)
它使用classcomp类的默认构造函数,因此你得到一个定义了operator()的对象,它就像一个函数。