#cpp #emulation #map

cpp_map

A simple C++ std::map emulator

6 releases

Uses new Rust 2024

0.2.0 Dec 3, 2025
0.1.1 Jul 29, 2021
0.0.3 Jul 11, 2021

#568 in Algorithms

43 downloads per month
Used in 5 crates (2 directly)

MIT/Apache

210KB
4.5K SLoC

Latest version Documentation workflow dependency status license

cpp_map.rs

C++ std::map Emulator for Rust

A simple C++ std::map emulator for Rust.

This library provides a data structure that emulates C++'s std::map, particularly its pointer-based cursors/iterators.

Key Features

  • Replicates C++ behavior where insert(key, value) is a no-op if the key exists (the new value isn't used)
  • Maintains pointer stability like C++'s std::map
  • Provides familiar C++-style iterator interface

Implementations

Skip List

  • O(log n) search and insert
  • O(1) sequential access

Linked List

  • O(n) search and insert
  • O(1) sequential access

Performance Note

For primarily position/hint-based operations, the linked list implementation will typically be faster.

Minimum Supported Rust Version (MSRV)

The minimum supported version of Rust for cpp_map is 1.87.0.

License

Licensed under either of

at your option.

Dependencies

~0.6–1MB
~21K SLoC