【发布时间】:2023-03-02 21:20:02
【问题描述】:
在下面的程序中为什么deque 的构造失败,而vector 的构造正常?
两者都提供priority_queue 期望的函数和RandomAccess 迭代器。我不明白原因。
我针对 C++98、C++11 和 C++14 进行了测试:see test program
#include <vector>
#include <deque>
#include <queue>
using namespace std;
int main()
{
deque<int> d;
priority_queue<int> q(d.begin(), d.end());
vector<int> v;
priority_queue<int> q1(less<int>(), v); //compiles
deque<int> d1;
priority_queue<int> q2(less<int>(), d1); //does not compile
return 0;
}
【问题讨论】:
-
如果你可以使用c++17,那么deduction guidescan determine it。
-
@apple Sure?
-
@πάνταῥεῖ 是的,我的第二个链接显示了如何正确使用它。
标签: c++ vector priority-queue deque