BST equilibrato come AVL o Rosso-Nero-Tree, possiamo mantenere facilmente una serie di valori che:Contenitore STL C++ adatto per trovare l'ennesimo elemento nell'elenco dinamico ordinato?
- Inserire/cancellare/interrogazione dato valore.
- Contare gli elementi più piccoli/più grandi del valore dato.
- Trova l'elemento con il rango k dopo l'ordinamento.
Tutti sopra possono essere archiviati nella complessità O(log N)
.
La mia domanda è, c'è qualche contenitore STL che supporta tutte e 3 le operazioni sopra nella stessa complessità?
So che il set STL/multiset può essere utilizzato per 1 e 2. E ho esaminato i contenitori basati su _Rb_tree map/set/multiset, ma nessuno fornisce il supporto per 3. C'è un modo per creare una sottoclasse di ext/rb_tree per risolvere questo ?