epam / epam/Indigo

core: replace `MultiMap` with standard library container

Open
#521 0 comments 0 reactions 0 assignees View on GitHub
c++ Core Improvement STD container Technical
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.