如何在自己的 class 中使用默认比较器?
How to use default comparator in own class?
我想创建自己的数据容器,如 STL-containers
。
template <class priorityType = size_t, class Compare = std::less<priorityType>>
class task_queue
{
public:
task_queue(Compare c = Compare())
{
}
private:
std::priority_queue<priorityType, std::vector<priorityType>, Compare> tasks_id;
};
int main() {
struct foo
{
int a;
};
struct foo_compare
{
bool operator()(const foo& lhs, const foo& rhs) const {
return lhs.a < rhs.a;
}
};
task_queue<foo, foo_compare> queue{ foo_compare() };
}
我想在 tasks_id
PQ 中使用传递给构造函数的 comparator
。我该怎么做?
直接调用constructor.
task_queue(Compare c = Compare()) : tasks_id(c)
{
}
你只需要调用它:
c(valuetocompare1, valuetocompare2);
就这么简单
我想创建自己的数据容器,如 STL-containers
。
template <class priorityType = size_t, class Compare = std::less<priorityType>>
class task_queue
{
public:
task_queue(Compare c = Compare())
{
}
private:
std::priority_queue<priorityType, std::vector<priorityType>, Compare> tasks_id;
};
int main() {
struct foo
{
int a;
};
struct foo_compare
{
bool operator()(const foo& lhs, const foo& rhs) const {
return lhs.a < rhs.a;
}
};
task_queue<foo, foo_compare> queue{ foo_compare() };
}
我想在 tasks_id
PQ 中使用传递给构造函数的 comparator
。我该怎么做?
直接调用constructor.
task_queue(Compare c = Compare()) : tasks_id(c)
{
}
你只需要调用它:
c(valuetocompare1, valuetocompare2);
就这么简单