发布网友 发布时间:2022-05-14 03:15
共3个回答
热心网友 时间:2024-02-23 04:32
首先查看手册,priority_queue的定义如下:
template<class T, class Container = std::vector<T>, class Compare = std::less<typename Container::value_type>> class priority_queue;
然后继续看模板的三个参数的说明
—————————以下直接摘抄的—————
Template parameters
T - The type of the stored elements. The behavior is undefined if T is not the same type asContainer::value_type. (since C++17)
Container - The type of the underlying container to use to store the elements. The container must satisfy the requirements of SequenceContainer, and its iterators must satisfy the requirements of LegacyRandomAccessIterator. Additionally, it must provide the following functions with the usual semantics:
front()
push_back()
pop_back()
The standard containers std::vector and std::deque satisfy these requirements.
Compare - A Compare type providing a strict weak ordering.
—————————以上直接摘抄的—————
故可知,使用priority_queue需要给三个类来实现模板,其中第三个类就是那个比较函数,你问的,为什么要priority_queue<int, vector<int>, greater<int> > q1;已经回答完毕。
另外,可以参考std::less的定义,更深入学习第三个类的含义。已附在引用部分,自行查阅。
std::priority_queue std::less
PS:第一个那家伙回答的什么东西!我本来是不想回答的。。。看见那家伙胡诌一气,气不过。
热心网友 时间:2024-02-23 04:33
将 1 - 10 分别输入 A1-A10单元格 B1输入公式 =sum(a1:a10) 就得到1-10的和了热心网友 时间:2024-02-23 04:33
《STL源码分析》,这本书是哪一种编程语言的