這似乎是一個愚蠢的問題,但我從來沒有見過這樣的事情!不知道我在C++中對函數聲明的解釋嗎?
int operator() (const std::string& s1, const std::string& s2) const
對我來說,運算符是一個const成員函數,它返回一個intger而且沒有可變參數! 但需要兩個const變量s1和s2?!?!我無法理解這一點!
class str_dist_ :
public std::binary_function<std::string, std::string, int> {
public:
int op() (const std::string& s1, const std::string& s2) const
{
if (s1 == s2)
return 0;
else if (s1.empty())
return std::max(s2.size()/2, 1u);
else if (s2.empty())
return std::max(s1.size()/2, 1u);
else
return min_edit_distance(s1, s2, zero_one_cost<char>(' '));
}
std::string empty() const { return std::string(); }
};