2010-09-10 10 views
6

¿Existe alguna buena estructura de datos de clave-> valor basada en archivos disponible en C++.¿Existe alguna buena estructura de datos clave-> basada en archivos disponible en C++?

similar a std :: map (basado en plantilla) con una inserción/eliminación/obtención de O (logn).

+2

Esta no es una respuesta real a su pregunta, así que lo estoy agregando solo como comentario. ¿Has considerado el uso de una base de datos? En particular, estoy pensando en sqlite como algo que puede integrarse en una aplicación de C++ sin demasiado esfuerzo. –

+0

Estaba buscando una estructura de datos sin db, si es posible. – aeh

+2

Si va a estar basado en archivos de todos modos, parece un requisito extraño – jalf

Respuesta

13

STXXL - Biblioteca de plantillas estándar para XXL Data Sets implementa contenedores basados ​​en archivos.

It's stxxl :: map suficientemente similar a std :: map, basado en B+ tree con una inserción/eliminación/obtención de O (logn).

1

Puede consultar Oracle Berkeley DB que proporciona la clave subyacente, el mecanismo de almacenamiento de datos que necesita o como sqlite ya sugerido.

0

Quizás pueda agregar su propio mecanismo de plantilla a Bases de datos como redist. Si tiene una base de datos basada en cadenas, necesita algunos métodos para serializar/deserializar sus propios objetos. Quizás los Buffers de Protocolo de Google o un exportador/importador JSON/XML personalizado lo haga por usted, depende de si solo desea velocidad o facilidad de uso.

Cuestiones relacionadas