Sto lavorando per migliorare le prestazioni di un programma che utilizza sia la libreria grafico Boost che boost::bimap
. La profilazione ha rivelato che la maggior parte del tempo veniva speso nell'assegnazione della memoria e nella deallocazione. La classe adjacency_list
della libreria di diagrammi utilizza in modo significativo le prestazioni migliorate di boost::fast_pool_allocator
. Una grande porzione delle rimanenti allocazioni di memoria si verifica in boost::bimap
, quindi ho voluto sperimentare l'utilizzo di un allocatore personalizzato anche lì. Il documentation dice che è possibile specificare l'allocatore come l'ultimo parametro del modello del bimap, ma non dice quale tipo dovrebbe essere l'argomento del modello per l'allocatore stesso. Ad esempio, per i tipi di X
e Y
, inUtilizzare un allocatore personalizzato con boost :: bimap
boost::bimap<set_of<X>, set_of<Y>, boost::fast_pool_allocator<Z> >
quello che dovrebbe essere compilato per Z
?
caldamente consiglio di non usare il boost: bimap. L'uso di un contenitore multi-index di boost con due indici direttamente è molto più chiaro rispetto al codice che utilizza una bimap. – James
@Autopulated: Grazie - lo considererò un'alternativa la prossima volta altrimenti proverei un bimap. –