Miscellaneous Container Templates is a C++ library that provides a collection of various STL-like containers with specific properties. It currently contains six closely related containers: closed_hash_set, closed_hash_map, linked_hash_*, and forward_hash_*. The first two are very similar to TR1 unordered_set and unordered_map; the linked ones provide additional functionality, while forward hash tables are more performant than linked, but have a restricted interface.
| Tags | Hashtables |
|---|---|
| Licenses | MIT/X |
| Operating Systems | Cross-platform |
| Implementation | C++ C++0x |
Recent releases


Release Notes: Linked and forward hash tables have been given a sort() function which changes element iteration order. MCT can now be configured, tested, and installed with GNU Make in addition to SCons. This is likely the last release before stable 1.6.


Release Notes: MCT now supports the Boost Serialization library (but doesn't depend on its presence). New public type properties like mct::is_set can help with template metaprogramming.


Release Notes: Containers now support allocators which use custom pointers, most importantly Boost.Interprocess allocators. This allows sharing MCT hash tables between processes directly.


Release Notes: This release fixes a C++0x-only bug with move semantics, which resulted in crashes in certain cases.


Release Notes: There are no major new features, but rather a large set of memory footprint and performance optimizations and several minor additions, like the quick_erase() method. Empty hash tables no longer use any dynamic memory, which makes them more suitable for a "many tables, many of them empty" use case. Updated documentation lists complexity for all functions, and test collection is half again as large.
A graphical user interface for encryption of USB flash drives or external hard drives.