$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: [boost] Priority Deque Container Adaptor
From: Nathaniel McClatchey (njmcclatchey1990_at_[hidden])
Date: 2012-07-03 01:06:23
Greetings.
I have written a container adaptor implementing efficient double-ended
priority queues. This preliminary submission is made to determine
if/when a formal submission should be made and in the hope that it
will be improved by your comments and reviews.
The library (a single header file) is publicly available on mediafire:
http://www.mediafire.com/download.php?gq8qjpgdoecgqq2
All files are distributed under the Boost Software License, Version 1.0.
An explanation of what it does:
This library replicates all functions of the STL priority_queue and
adds functions for efficient access to the other end of the queue.
Where the STL priority_queue uses a max-heap, I use a max-min heap
(see article on Wikipedia). This leads to O(log n) complexity for
single-element operations, and O(n) complexity for initialization and
merging.
TL;DR: Double-ended priority queue with algorithmic complexity
equaling the STL single-ended priority queue.
The current revision has been tested on:
GCC 4.7.0 (MinGW on Windows 7 x64)
Microsoft Visual C++ 2010 (on Windows 7 x64)
Documentation may be generated by Doxygen.
Any comments, criticisms, or compatibility information will be appreciated.
I currently have one decision to make that requires experience beyond
mine. Some const functions require calling operator() in a comparison
class; should I make the class mutable, make a non-cost copy of the
comparison class when needed, or require that operator() be a const
function? So far, I have avoided the last option because it would make
the class prerequisites more strict.
Thanks,
Nathaniel McClatchey