C++ std::map quirks emulated in rust
- Rust 99.5%
- Shell 0.5%
|
|
||
|---|---|---|
| .cargo | ||
| .github/workflows | ||
| .woodpecker | ||
| examples | ||
| src | ||
| tests | ||
| .gitignore | ||
| Cargo.toml | ||
| LICENSE-APACHE | ||
| LICENSE-MIT | ||
| README.md | ||
| run_grcov.sh | ||
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.