Ordina l’albero delle statistiche in C ++

Ho bisogno di un albero di statistica degli ordini per i contenitori di mappe standard di GCC STL.

Ho controllato e c’è qualcosa di conosciuto come PBDS. Strutture dati basate su criteri. Anche questo uso non mi è chiaro.

Chiunque può dirmi come utilizzare i contenitori di mappe STL per l’albero delle statistiche degli ordini? Anche se è sufficiente su GNU G ++?

Ecco l’esempio della MAP STL basata su criteri GNU implementata come albero di statistica degli ordini (testato su gcc 4.6.1 di Linux):

#include  #include  #include  using namespace std; using namespace __gnu_pbds; typedef tree< int, int, less, rb_tree_tag, tree_order_statistics_node_update> map_t; int main() { map_t s; s.insert(make_pair(12, 1012)); s.insert(make_pair(505, 1505)); s.insert(make_pair(30, 1030)); cout << s.find_by_order(1)->second << '\n'; return 0; } 

Ecco un collegamento alla panoramica delle strutture dati basate su criteri GNU . Ecco un altro esempio di tree_order_statistics . Non riesco a trovare un buon riferimento per le strutture dati basate su criteri, ma è ansible utilizzare questi collegamenti e le fonti PBDS.