如何在自己的类中使用默认比较器
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() };
}
我想在 PQ 中使用传递给构造函数comparator
tasks_id
。我该怎么做?
只需调用正确的构造函数。
task_queue(Compare c = Compare()) : tasks_id(c)
{
}
你只需要调用它:
c(valuetocompare1, valuetocompare2);
就这么简单。
相关文章:
- std::设置自定义比较器
- C++中"std::sort"比较器的不同类型
- 将 std::set 与基于键的比较器一起使用
- 带自定义比较器的最小优先级队列
- 函数类作为比较器
- 优先级队列自定义比较器
- 什么是自定义比较器以及如何在 C++ 的排序函数中使用它?
- 没有默认构造函数作为模板参数的自定义比较器
- set_intersection使用自定义设置比较器
- 如何为集合 c++ 建立比较器
- C++复杂情况的比较器通过参数问题
- 对于BTreeMap和其他依赖于Ord的东西,是否有等效于C++比较器对象?
- 对没有比较器或λ函数的向量进行排序?
- "operator()"在重载运算符方法中是什么意思,在priority_queue(STL)中用作C++中的比较器?
- 用户定义的结构是否有默认C++比较器?
- 在priority_queue中使用默认容器但自定义比较器
- 为什么<wstring>使用自定义 wcscmp 和 wmemcmp 比较器对向量进行排序比默认快得多?
- 如何在自己的类中使用默认比较器
- 为什么 std::sort 有两个实现(带和不带比较器),而不是一个带有默认模板参数的实现
- C++/STL默认比较器