C++ new data structures

Here are some new data structures in C++ that you may not have encountered before:

  1. Trie (Prefix Tree): A trie is a tree-like data structure that is often used to store a dynamic set or associative array where the keys are usually strings.

Example implementation: std::trie from the Boost library.

  1. Splay Tree: A splay tree is a self-balancing binary search tree that moves recently accessed elements to the root of the tree, making them faster to access.

Example implementation: std::splay_tree from the Boost library.

  1. Fenwick Tree (Binary Indexed Tree): A Fenwick tree is a data structure that can efficiently update and query ranges of elements in an array.

Example implementation: std::fenwick_tree from the Boost library.

  1. Range Tree: A range tree is a data structure that allows for efficient range queries on a set of points in a multidimensional space.

Example implementation: std::range_tree from the Boost library.

  1. K-D Tree: A k-d tree is a data structure that partitions the space into smaller regions and is often used for efficient nearest neighbor search.

Example implementation: std::kd_tree from the Boost library.

  1. Bloom Filter: A Bloom filter is a probabilistic data structure that can quickly determine whether an element is a member of a set.

Example implementation: std::bloom_filter from the Boost library.

  1. Skip List: A skip list is a probabilistic data structure that combines the benefits of linked lists and balanced binary search trees.

Example implementation: std::skip_list from the Boost library.

  1. Heap of Heaps: A heap of heaps is a data structure that allows for efficient insertion and deletion of elements, while maintaining the heap property.

Example implementation: std::heap_of_heaps from the Boost library.

  1. Ternary Search Tree: A ternary search tree is a data structure that allows for efficient insertion, deletion, and search of elements.

Example implementation: std::ternary_search_tree from the Boost library.

  1. Interval Tree: An interval tree is a data structure that allows for efficient range queries on a set of intervals.

Example implementation: std::interval_tree from the Boost library.

These are just a few examples of the many new data structures available in C++. Each data structure has its own strengths and weaknesses, and choosing the right one depends on the specific problem you're trying to solve.