Estoy usando el mapa desordenado de gnu ++ 0x para almacenar una gran cantidad de datos. Quiero preasignar espacio para la gran cantidad de elementos, ya que puedo enlazar el espacio total utilizado.Precategoría de depósitos en C++ unordered_map
Lo que me gustaría ser capaz de hacer es llamar:
std::unordered_map m;
m.resize(pow(2,x));
donde se sabe que x.
unordered_map no es compatible con esto. Prefiero usar unordered_map si es posible, ya que eventualmente formará parte del estándar.
Algunas otras limitaciones:
Necesita O fiable (1) el acceso y la mutación del mapa. Las funciones de comparación y hash deseadas ya no son estándar y son algo costosas. La mutación O (log n) (como con std :: map) es demasiado costosa.
-> El hash caro y la comparación también hacen que el crecimiento basado en la amortización sea demasiado caro. Cada inserción adicional requiere O (n) operaciones de esas funciones, lo que da como resultado un término cuadrático adicional en el tiempo de ejecución del algoritmo, ya que los requisitos de almacenamiento exponencial necesitan O (n) crecimientos.
Está usando la sugerencia, como si estuviera en: iterator std :: set :: insert (sugerencia del iterador, const value_type & value); http://en.cppreference.com/w/cpp/container/set/insert, parece una redacción incorrecta. –