This tutorial on the Standard Templete Library for Very Large Datasets (STXXL) is meant as an introduction to all those who use the STXXL for the first time - just basic knowledge in C++ is required. Note that the focus of this tutorial is on the most importatant features and is by no means exhaustive. If necessary, we refer to more advanced functionality which would go however beyond the scope of this introduction.
Why do i need the STXXL? Imagine a situation where you want to work with a std::vector which does not fit into the internal memory completely. That is precisely the situation where the STXXL container stxxl::vector solves the issue. The practical part about it: Stxxl containers work in a similar way as their internal counterparts from the Standard Template Library (STL) so that parts of this tutorial may sound familiar to you. Naturally, the vector container is just an example - the same applies to other data structures.
Before running the STXXL for the first time you may check Compiling and Installing STXXL on Linux/Unix Variants.
This section introduces in all currently available STXXL containers. The practical part about it: STXXL containers which have an internal counterparts in the Standard Template Library (STL) work similar so that parts of this tutorial may sound familiar to you:
Beyond these, STXXL also provides a set of containers that are not part of the STL:
Furthermore, the stream pipeline component of STXXL is described in the following tutorials:
For more information on the structure, the internal design and time / space complexity of the provided operations, see The STL-User Layer.
examples subdirectory of the STXXL tarballs contains more example code than those of the tutorials above. These are less documented but still contain useful code snippets and usage information.
examples/applicationsdirectory is a collection of real external memory algorithms computing non-trivial output. We welcome contributions of interesting applications to this collection, currently included are: