¿Cómo almacenar datos binarios cuando solo te importa la velocidad?

Tengo N puntos en dimensiones D, donde digamos que N es 1 millón y D 100. Todos mis puntos tienen coordenadas binarias, es decir, {0, 1} ^ D, y solo estoy interesado envelocidad.

Actualmente mi implementación usastd::vector<int>. Me pregunto si podría beneficiarme en términos de una ejecución más rápida cambiando miestructura de datos. Solo estoy haciendo inserciones y búsquedas (no cambio los bits).

Todas las preguntas relacionadas que encontré mencionanstd::vector<char>, std::vector<bool> ystd::bitset, pero todos mencionan los beneficios de espacio que uno debería obtener al usar tales estructuras.

¿Cuál es la estructura de datos adecuada, cuando la velocidad es la principal preocupación, para los datos binarios en C ++?

Tengo la intención de llenar mi estructura de datos con los datos binarios y luego hacer muchas búsquedas contiguas (quiero decir que realmente no me importa la coordenada i-ésima de un punto, si estoy accediendo a un punto accederé a todos sus coordenadas continuamente). Calcularé elDistancia de Hamming entre ellos

Respuestas a la pregunta(3)

Su respuesta a la pregunta