C ++ Вектор / список приоритетных очередей? - PullRequest
1 голос
/ 14 августа 2010

Почему C ++ не позволяет что-то подобное?

Мне нужно иметь несколько очередей с приоритетом, количество которых будет определено во время выполнения.

Не удается скомпилировать

std::vector<std::priorityqueue<Class A>>.

Есть ли лучший подход?

Ответы [ 2 ]

6 голосов
/ 14 августа 2010

Правильный код будет выглядеть следующим образом:

std::vector<std::priority_queue<A> >

Обратите внимание, что Class не относится к A, priority_queue содержит подчеркивание, и между ними должно быть свободное пространствоправые угловые скобки (>> анализируется как оператор правого сдвига).

Для этого также требуется, чтобы A было менее сопоставимым (если это не так, то вы должны предоставить функцию сравнения для использования в очереди с приоритетами).

1 голос
/ 14 августа 2010

Это должно работать просто отлично.Просто синтаксис должен быть:

std::vector<std::priority_queue<A> >

(обратите внимание на пробел ("") в конце.

...