Korzystanie zbilansowanej BST jak AVL lub czerwono-czarno-Tree, możemy łatwo utrzymać zestaw wartości, które:Kontener C++ STL odpowiedni do znalezienia n-tego elementu na liście uporządkowanej dynamicznie?
- Insert/usuwać/query podana wartość.
- Policz elementy, które są mniejsze/większe niż podana wartość.
- Znajdź element z pozycją k po sortowaniu.
Wszystkie powyższe można zarchiwizować w złożoności O(log N)
.
Moje pytanie brzmi, czy istnieje kontener STL obsługujący wszystkie trzy powyższe operacje w tej samej złożoności?
Wiem, że zestaw/multiset STL może być używany dla 1 i 2. I ja sprawdziłem kontenery oparte na _Rb_tree map/set/multiset, ale żaden nie zapewnia wsparcia dla 3. Czy istnieje sposób na podklasowanie ext/rb_tree, aby rozwiązać ten problem ?