gpt4 book ai didi

c++ - 如何初始化 std::set 比较器?

转载 作者:行者123 更新时间:2023-11-30 02:11:11 30 4
gpt4 key购买 nike

我需要初始化一些基于 std::set 的新数据类型 TType 的比较器和另一个类 Object 的一些对象 o:

typedef std::set <unsigned int, sortSet(o)> TType

这个声明在类之外(在头文件中)。在声明时这个对象不一定存在,稍后会创建它。

class sortSet
{
private:
Object o;

public:
sortSet(Object &oo): o(oo) {}
bool operator() ( const unsigned int &i1, const unsigned int &i2 ) const
{
//Some code...
}
};

如果声明在某个方法内部(当对象已经创建时),情况会很简单......我能做什么?

最佳答案

模板参数需要是比较器的类型,而不是该类型的特定对象;您可以提供一个特定的比较器对象以在 std::set 构造函数中使用:

typedef std::set<unsigned int, sortSet> TType;

Object o;
TType mySet(sortSet(o));

关于c++ - 如何初始化 std::set 比较器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3782702/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com