Preasignando cubos en un C ++ std :: unordered_map

Estoy usando lastd::unordered_map de gnu ++ 0x para almacenar una gran cantidad de datos. Quiero preasignar espacio para la gran cantidad de elementos, ya que puedo vincular el espacio total utilizado.

Lo que me gustaría poder hacer es llamar:

std::unordered_map m;
m.resize(pow(2,x));

donde se conoce x.

std::unordered_map no es compatible con esto. Prefiero usarstd::unordered_map si es posible, ya que eventualmente será parte del estándar.

Algunas otras restricciones:

Necesita acceso confiable O (1) y mutación del mapa. Las funciones hash y de comparación deseadas ya no son estándar y son algo caras. O (log n) mutación (como constd::map) es demasiado caro

-> El costoso hash y la comparación también hacen que el crecimiento basado en la amortización sea demasiado costoso. Cada inserción adicional requiere operaciones O (n) de esas funciones, lo que resulta en un término cuadrático adicional en el tiempo de ejecución del algoritmo, ya que los requisitos de almacenamiento exponencial necesitan crecimientos O (n).

Respuestas a la pregunta(5)

Su respuesta a la pregunta