Skip to content

NikitaMsln/bimap-task

 
 

Repository files navigation

Bimap

В этом задании вам необходимо написать bimap
Интерфейс вы найдете в репозитории, в файле bimap.h

bimap — это структура данных, в которой хранится набор пар и эффективно выполняется поиск ключа по значению. В отличие от map, поиск в bimap может выполняться как по левым (left) элементам пар, так и по правым (right).

bimap параметризуется 2 типами (left и right) и 2 компараторами, которые определяют порядок на этих типах.

Итераторы вашего bimap должны повторять соответствующее поведение для map и позволять проходить все элементы с одной стороны в порядке, определенном переданным компаратором.

Вам предлагается с помощью описания изложенного выше, интерфейсу и уже пройденным материалам курса придумать и реализовать bimap, эффективный по:

  • Использованию памяти
    • Общему количеству аллокаций
    • Пустое дерево не должно делать никаких динамических аллокаций
    • Пустые компараторы не должны занимать дополнительную память
  • Скорости операций
  • Количеству копипасты, особенно стоит присмотреться к итераторам

About

Add test

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 84.9%
  • Shell 9.4%
  • CMake 5.7%