是否可以将带参数的构造函数传递给C ++中的集合?

时间:2012-03-04 22:59:42

标签: c++ string multiset

我想知道是否有可能将一个带有参数的构造函数传递给一个比较函数。

例如:

class cmp
{
    private:
        string args_;
    public:
        cmp(const string& s):args_(s){}
        bool operator()(const int & a, const int& b)
            return a<b;
}

int main(int argc, char * argv[])
{
    string s(argv[1]);
    multiset<int, cmp(s)> ms; //can i do this?
}

1 个答案:

答案 0 :(得分:4)

std::setstd::multiset有构造函数,它们使用比较器对象:

explicit set (const Compare& comp = Compare(),
              const Allocator& = Allocator());

Compare对象的类型是std::setstd::multiset模板的第二个参数。