сжатое хранилище строк

Допустим, у меня есть много объектов, содержащих строки нетривиальной длины (около 3-4 килобайт). Все строки отличаются друг от друга, но в то же время содержат множество общих частей / подпоследовательностей. В среднем, может быть, 80-90% каждой отдельной строки содержится вместе с другими. Есть ли простой способ автоматически использовать эту огромную избыточность для сжатия данных?
В идеале решение должно быть C ++ и прозрачным для пользователя (т.е. я могу использовать его, как если бы я обращался к обычному константе std :: string только для чтения, но вместо этого читал из сжатого хранилища).

6
задан BuschnicK 3 December 2010 в 09:20
поделиться