Copyright Vadim Stadnik 2011-2012. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
SUMMARY
The proposed library stl_ext_adv offers augmented array based B+ trees and STL containers that support the interfaces of the C++03 sequences and associative containers. The library offers a number of extensions and performance improvements that are not available in C++03 and C++11 standard containers.
OVERVIEW
Both sequences and associative containers support:
Sequences support:
Associative containers support:
One basic container implements the efficient algorithm accumulate(), which sums up any consecutive elements of a container in logarithmic time. The algorithm is fundamental to many important applications, such as the numerical integration and statistics.
The array based data structures improve locality of reference and offer more efficient algorithms against equivalent dynamically allocated data structures. The wide set of the efficient member functions provided by the new containers makes them useful to improve the performance of algorithms using the standard containers with at least one relatively inefficient operation or a bidirectional iterator.
EXAMPLES
Simple examples of uses of the containers and algorithms are available in the test code of this project, see files in the folder "test".
Examples in the folder "example" demonstrate how to improve the computational complexity from O(N) to O(log N) in the following applications and problems:
COMPILERS