STXXL  1.4-dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Tutorials and Examples
Authors
Timo Bingmann, Daniel Feist (2013)

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.

Available tutorials on STXXL Containers

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.

More Examples and Real Applications

The 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.

  • The examples/applications directory is a collection of real external memory algorithms computing non-trivial output. We welcome contributions of interesting applications to this collection, currently included are:
  • There is a collection of simple tools which copy and sort files containing integers or structs: copy_file.cpp, sort_file.cpp and copy_and_sort_file.cpp.