epam / epam/Indigo

core: replace `RedBlackMap` and `RedBlackSet` implementation with standard containers

Open
#520 0 comments 0 reactions 1 assignee Claimed by @AMazhyrau 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 ordered associative containers and ordered sets using red-black trees. The implementation could be found in `core/indigo-core/common/base_cpp/red_black.h`.
In many cases order of elements is not important and `int` is a key type, so it could be easily replaced with hash maps and also lead to performance improvement. Same for unordered sets.

**ToDo**
1. Find all places in code that use `RedBlackMap`, check if K is trivially hashable and order of elements is required, and replace it with `std::map` or `std::unordered_map` depending on the situation.
2. Find all places in code that use `RedBlackSet`, check if K is trivially hashable and order of elements is required, and replace it with `std::set` or `std::unordered_set` depending on the situation.
3. Check if `core/indigo-core/common/base_cpp/red_black.h` and eliminate it if it's not required anymore.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.