这段代码是如何工作的? (多分类排序)

时间:2015-10-22 18:43:46

标签: c++ stl multiset

struct compare{
    bool operator() ( const string& a , const string& b ) const{
        return a.size() < b.size ();
    }
};


multiset<string , compare> stg;

我正在解决一个问题,我想根据字符串长度对multiset进行排序。我在互联网上搜索它并得到了这个结构。它对我有用..但我想知道它是如何工作的......

我只是对这行代码感到困惑。到目前为止,我认为结构只能包含变量,而不是函数。 它是否类似于在类中重载。

 bool operator() ( const string& a , const string& b ) const{

1 个答案:

答案 0 :(得分:1)

C ++中的结构可以包含代码,但它通常是一个坏主意,因为你没有获得与类相同的封装级别。

但是,C中的结构只是结构,不能包含代码。

来源:https://msdn.microsoft.com/en-us/library/4a1hcx0y.aspx