11
votes

Bibliothèques de compression pour C ++

Je lisais sur la compression dans les programmes et j'ai commencé à créer un nouveau projet simple, une fermeture à glissière (juste une fermeture à glissière, pas un omipper), mais je n'ai trouvé que zlib, et c'est pour C. Je sais que les bibliothèques C peuvent être Utilisé en C ++, mais j'aime utiliser les bibliothèques C ++. Est-ce que quelqu'un sait un bon à suggérer?

meilleures salutations.


6 commentaires

Si vous compilez la bibliothèque C avec un compilateur C ++, cela fonctionnera probablement (puis être C ++).


Si vous allez créer un utilitaire de compression qui ne décrit pas / ne peut pas décompresser, ce qui pourrait être meilleur que rm big_file ?


Probablement? Pas probablement ... ça sera travailler.


@Carl c'est une bonne idée. @Mark lol


On dirait que j'aurais dû faire une réponse, je manque de la réputation!


Si vous compilez la bibliothèque avec le compilateur C, vous pouvez le lier de manière plus ou moins transparente de manière transparente. Mais oui, vous pourrez peut-être également la compiler avec le compilateur C ++.


7 Réponses :


2
votes

Je suggérerais d'utiliser zlib. Il est conçu pour C, mais cela fonctionne bien en C ++.

L'utilisation de bibliothèques natives C ++ n'affecte vraiment que lorsque la bibliothèque est suffisamment grande et complexe qu'elle peut bénéficier d'une conception orientée objet. ZLIB est relativement simple et n'a pas besoin de fonctionnalités orientées objet.


0 commentaires

10
votes

La plupart des bibliothèques de compression que je connais sont écrites en C pour deux raisons: une, l'âge général des bons algorithmes de compression; et deux, la haute portabilité (et la stabilité) de C à travers les plates-formes.

Je suggère l'un des éléments suivants. Si vous voulez de bonnes licences, sélectionnez l'une des deux premières, sinon si vous êtes ouvert à l'utilisation de Code GPL, choisissez l'un des deux derniers.


0 commentaires

11
votes

Vous pouvez le faire facilement en utilisant boost iostream Filtre ZLIB


0 commentaires

2
votes

Utilisez libzip: http://www.nih.at/libzip/ La licence est Jolie permissive et tout ce dont vous avez besoin, du code C ou C ++.


0 commentaires

1
votes

Zlib est fortement recommandé. Il est bien écrit et l'interface est assez propre. Je ne vois pas combien d'emballage C ++ peut simplifier les API. De plus, à mon avis, Zlib atteint un bon équilibre entre la vitesse de compression (DE) et la taille du fichier. BZIP2 est beaucoup plus lent alors que le rapport de compression de Lzo et UCL est pire.


1 commentaires

L'interface ZLIB a l'air un peu bizarre pour moi. Je préfère le boost :: iostreams wrap, beaucoup saner.



2
votes

zlib est bon, mais vous voudrez peut-être vérifier le LZMA SDK aussi (Vous pouvez compresser au format .7z, en plus de zip)


0 commentaires

1
votes

C'est ce que j'aime (c'est vraiment rapide et a un bon taux de compression): http://www.quicklz.com/


1 commentaires

Cela semble fonctionner parfaitement et facilement, merci.