Поскольку оба std::priority_queue
и std::set
(и std::multiset
) являются контейнерами данных, которые хранят элементы и позволяют вам получить доступ к ним упорядоченным образом и имеют такую же сложность вставки O(log n)
, каковы преимущества использования один над другим (или, какие ситуации требуют того или другого?)?
Хотя я знаю, что базовые структуры разные, меня не так сильно интересует разница в их реализации, поскольку я сравниваю их производительность и пригодность для различных целей.
Примечание. Я знаю об отсутствии дубликатов в наборе. Вот почему я также упомянул std::multiset
, поскольку он имеет точно такое же поведение, что и std::set
, но может использоваться там, где хранятся данные, которые можно сравнить как равные элементы. Поэтому, пожалуйста, не комментируйте проблему с одиночными/множественными ключами.