core: replace `MultiMap` with standard library container
- Dominant language
- C++
- Stars
- 406
- Forks
- 134
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 24
Description
**Motivation**
Currently Indigo uses own-written implementation of MultiMap instead of standard one. It does not contain any unique API that could not be replaced with standard container. Also it uses red-black trees even if we don't need the order of the keys, so we could also achieve performance improvement here.
The implementation could be found at `core/indigo-core/common/base_cpp/multimap.h`.
**ToDo**
1. Find all places in code that use `MultiMap`, check if K is trivially hashable and order of elements is required, and replace it with `std::multimap` or `std::unordered_multimap` depending on the situation.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with core/indigo-core/common/base_cpp/multimap.h, then search the codebase for every MultiMap use. For each usage, check whether key hashing is available and whether key ordering is required before selecting the standard container. Done means all applicable uses are replaced and the project builds and its existing tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- backend
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100