使用C++优先级队列限制其内存

Jak*_*lat 2 c++ stl priority-queue stdvector

我使用的priority_queue<unsigned long,vector<unsigned long>,greater<unsigned long> >是C++,内存限制为16MB.我的程序只需要10MB,但一旦达到8653464字节,它会尝试将其容量加倍并抛出一个bad_alloc.

有没有办法使用我当前的实现来阻止这个?可以在priority_queue具有数(n)时间仍然如果我切换到deque[从vector]

Leo*_*sky 5

切换到deque非常明智的方法.它按固定数量增长,而不是按x2增长vector.复杂性应该留下来O(log N).