es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La forma más eficiente en C++ para almacenar datos binarios mutables en una variable sería mediante el uso de un puntero a un arreglo de bytes. Esto permitiría manipular directamente los valores en memoria sin tener que hacer copias adicionales de los datos.

Estoy trabajando con una secuencia de cadenas binarias y me gustaría asignar estos datos a tipos de datos de manera más eficiente en términos de memoria.

Ejemplo: int utiliza 4 bytes para un rango de -2147483648 a 2147483647.

Dado que mis datos son solo unos y ceros, ¿cuál es el mejor tipo de dato para usar en una gran secuencia de datos binarios?

He intentado usar bitset, pero las funciones como leer y sustituir 0001 por 1 y 0101 por 5 se ejecutan más lentamente en comparación con los tipos de datos enteros.

¿Existe alguna otra forma eficiente de almacenar y recorrer datos binarios en un tipo de dato?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para un flujo grande de datos binarios, el tipo de dato más eficiente en cuanto a memoria para utilizar es probablemente std::vector<bool>. Este tipo utiliza un solo bit por valor booleano, en lugar de un byte completo, lo que puede reducir significativamente el uso de memoria. Además, proporciona operaciones bitwise eficientes y permite el fácil recorrido y modificación de los datos binarios. Otras alternativas podrían ser std::array<bool> o std::bitset, aunque es posible que no sean tan eficientes en cuanto a memoria como vector<bool>.

Comments are closed.