Overview of M*LIB container types
masterM*LIB provides a variety of generic, type-safe containers categorized by their usage patterns and requirements:
Non-intrusive Containers
These containers do not require you to modify your existing data structures. They are defined in:
m-array.h: Dynamic array of a generic type.m-list.h: Singly-linked list of a generic type.m-deque.h: Dynamic double-ended queue of a generic type.m-queue.h: Static queue or stack of a generic type.m-prioqueue.h: Dynamic priority queue of a generic type.m-dict.h: Unordered associative array (hashmap) or unordered set.m-rbtree.h: Ordered set (Red/Black binary sorted tree).m-bptree.h: Ordered map/set/multimap/multiset (sorted B+TREE).m-tree.h: Arbitrary tree.m-tuple.h: Arbitrary tuple of generic types.m-variant.h: Arbitrary variant of generic types.
Intrusive Containers
These require you to modify your structure to include the fields necessary for the container:
m-i-list.h: Doubly-linked intrusive list.
Thread Synchronization Containers
Used for thread-safe data sharing and synchronization:
m-buffer.h: Fixed-size queue or stack (multiple producer / multiple consumer).m-snapshot: Atomic buffer (triple buffer) for sharing large data synchronously.m-shared-ptr.h: Shared pointer of a generic type.