Для std:: priority_queue я предположил, что первый параметр шаблона, указанный тип и второй, должен быть контейнером этого типа. Пример:
priority_queue<int, vector<int>> someQueue;
Однако следующий код компилируется и, кажется, работает нормально:
class SomeClass
{
};
int main()
{
priority_queue <SomeClass, vector<int>> pq;
int x = 9;
pq.push(x);
int t = pq.top();
cout << t << endl;
pq.pop();
return 0;
}
Является ли вышеуказанный код недействительным (т.е. дает UB)?
Если он действителен - каков первый параметр шаблона (т.е. someClass
), который используется в priority_queue.