Capisco che il mio STL (che viene fornito con g ++ 4.x.x) utilizza alberi rosso-nero per implementare contenitori come la mappa. È possibile utilizzare direttamente l'albero rosso-nero interno dell'STL. Se é cosi, come? In caso contrario, perché no? Perché STL non espone l'albero rosso-nero?Utilizzo dell'implementazione interna di albero rosso-nero di STL
Sorprendentemente, non riesco a trovare una risposta utilizzando google.
Edit: Sto indagando utilizzando l'albero rosso-nero come una soluzione per la chiamata al costruttore allocatore in più su di inserimento. Vedi this question. Il mio STL utilizza alberi rosso-neri per l'implementazione della mappa.
"Sto cercando di utilizzare l'albero rosso-nero come soluzione alla chiamata del costruttore di allocatori extra al momento dell'inserimento." Una soluzione adeguata sarebbe quella di utilizzare un'implementazione di contenitori standard che non ha questa proprietà. C++ 11 richiede allocatori di stato, quindi qualsiasi libreria standard che supporti correttamente questa caratteristica di C++ 11 avrà un comportamento più ragionevole (anche se costruirà ancora diverse istanze di allocatore, lo farà solo dall'oggetto allocatore originale). –
@Prasoon - Non ti aiuterebbe qui, perché è l'implementazione dell'albero sottostante che chiama comunque il costruttore. Provare un compilatore più recente di gcc 4.1 sarebbe un'opzione (domanda precedente [allocatore di memoria personalizzato per la mappa STL] (http: // stackoverflow.com/domande/11373796/custom-memory-allocatore-per-stl-map)) –