Я создал очередь приоритетов STXXL в своей программе. Если мне больше не нужен PQ, как его удалить? Так же, как delete [] buffer в C++. Я хочу освободить используемую им память.Как удалить очередь приоритетов STXXL?
Я просмотрел their examples and description, но я не могу найти пути. Как только PQ будет создан, будет ли память занята этим PQ до конца программы?
Например, если я определяю две очереди с приоритетом: Q1 и Q2.
typedef stxxl::PRIORITY_QUEUE_GENERATOR <
SufNode<unsigned char>,
ComparatorGreater<unsigned char>,
mem*1024*1024, 1024*1024
>::result pqueue_type0;
pqueue_type0 Q1(pool1);
Затем я делаю что-то с Q1, а затем удаляю его, поэтому я могу выделить больше памяти для Q2.
typedef stxxl::PRIORITY_QUEUE_GENERATOR<
SufNode<unsigned char>,
ComparatorGreater2<unsigned char>,
mem*1024*1024, 1024*1024
>::result pqueue_type20;
pqueue_type20 Q2(pool2);
Кажется, что он работает так, как можно было бы ожидать в C++, то есть память выделяется при уничтожении объекта. У вас есть какие-то признаки того, что это не так? – molbdnilo
По каким-то причинам мне нужно определить 8 pqs в моей программе, когда общая память, занимаемая PQ, превосходит число памяти моего компьютера (например, 4G, ubuntu), она работает медленно, поэтому я хочу удалить некоторые pq, которые не нуждаются в каких-либо Больше. – Charlie
@Charlie: Этого можно ожидать от STXXL. Он использует ваш диск в дополнение к памяти, но память намного медленнее. – MSalters