В приведенной ниже программе почему конструирование с deque
завершается неудачно, но конструкция с vector
в порядке ?
Оба предоставляют функции и итератор RandomAccess, ожидаемый priority_queue
.Я не вижу причины.
Я проверил это на C ++ 98, C ++ 11 и C ++ 14: см. Тестовую программу
#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;
}