Я ищу бесплатную программную реализацию абстракции с ограниченным приоритетом в C ++. По сути, мне нужна структура данных, которая будет вести себя так же, как std::priority_queue
, но всегда будет содержать «лучшие» элементы n не более.
Пример:
std::vector<int> items; // many many input items
bounded_priority_queue<int> smallest_items(5);
for(vector<int>::const_iterator it=items.begin(); it!=items.end(); it++) {
smallest_items.push(*it);
}
// now smallest_items holds the 5 smallest integers from the input vector
Кто-нибудь знает о хорошей реализации такой вещи? Есть опыт?