¿Hay algún contenedor "estándar" (STL, boost) que pueda presentar múltiples fragmentos de memoria como uno continuo? Necesito trabajar con algunos datos con los siguientes condiciones:Contenedor para presentar múltiples fragmentos de memoria como uno continuo continuo
- tamaño total de datos no se conoce de antemano (de respuesta web)
- memoria se asigna en trozos (con alguna función de asignación externa, que no tengo ningún control de)
- liberación de memoria no está controlada por mí, por lo que las reasignaciones son relativamente caros
así, después de obtener todos los datos, tengo una lista de trozos de memoria. Y necesito aplicar algunos algoritmos STL (búsqueda, copia, etc.) a los datos como un todo. Hay una solución para escribir contenedor para contener información sobre estos fragmentos + iterador directo que es capaz de "saltar" de un fragmento a otro.
Pero el problema parece bastante general, así que espero que haya alguna respuesta conocida que me falta. Gracias por adelantado.
Estoy totalmente de acuerdo en que necesito un iterador y lo he mencionado como una posible solución. Pero usar un iterador sin contenedor me parece extraño. Debido a que debería obtener mi 'begin()' y 'end()' de alguna manera, encapsular esto en el contenedor parece natural. Tal vez la palabra _container_ es mal utilizada aquí por mí.No estoy hablando del concepto de contenedores STL, sino de algún "titular" para trozos separados que los encapsularían. Solo tenía esperanza de que no debería implementar esto yo mismo. De todos modos, gracias por una respuesta. –
"_Container_" está bien definido en C++ (es el capítulo 23 de la norma). – MSalters