我想创建自己的数据容器,如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() };
}
我想在comparator
PQ中使用传递给构造函数的tasks_id
。我怎么能这样做?
答案 0 :(得分:2)
只需致电constructor。
task_queue(Compare c = Compare()) : tasks_id(c)
{
}
答案 1 :(得分:0)
你只需要调用它:
c(valuetocompare1, valuetocompare2);
这很简单。