2010-10-09 6 views
3

Je suis un étudiant, et nouveau pour C++. Je suis à la recherche d'une API C++ standard aussi complète que l'API Java. J'ai utilisé cplusplus.com, et cppreference.com. S'il vous plaît toute aide serait grandement appréciée.C++ standard api

+0

Que voulez-vous dire par une API? Quelles caractéristiques voulez-vous? Quel est le problème avec la bibliothèque standard? – ybungalobill

+0

Vous recherchez une référence complète pour la bibliothèque standard C++? Ou cherchez-vous une bibliothèque C++ aussi complète que la bibliothèque Java? –

+0

Les sites que vous avez mentionnés couvrent tout ce qui peut être considéré comme API C++. –

Répondre

6

C++ et Java ont des bibliothèques standard très différentes parce qu'elles font des hypothèses très différentes quant à leur utilisation. Java suppose que les applications ou les applets seront exécutés sur un hôte avec un système d'exploitation complet, avec une manière définie de faire la plupart des choses normales.

Il y a beaucoup de contenu, par exemple, dans java, la sortie sera une application ou une applet. C++ ne fait pas cette supposition, parce que C++ peut être utilisé pour construire des noyaux OS et des pilotes pour les noyaux, il peut être utilisé pour programmer des applications en temps réel sur des microcontrôleurs ou des blocs de traitement dans des supercalculateurs.

C++ peut être utilisé pour implémenter le système d'exploitation sur lequel il sera exécuté. Pour ces raisons, la bibliothèque standard n'assume presque rien de ce qu'elle aura à sa disposition, et la bibliothèque standard ne fait donc aucune dépendance à ces fonctionnalités. La seule exception concerne les fichiers et le streaming, car presque n'importe quel système d'exploitation comme la pile a quelque chose qui ressemble à un flux de fichier s'il contient des fichiers du tout.

Si vous voulez un ensemble plus riche d'OS spécifiques, vous devez regarder quelque chose de non standard. Un bon choix est le framework Qt, qui fournit de nombreux outils similaires à ce qui se trouve dans les bibliothèques Java, est multi-plateforme et fonctionne bien avec les idiomes C++ natifs.

+1

Je suis d'accord, je pense que la bibliothèque standard, boost, et Qt font pour un ensemble très complet de bibliothèques avec des dépendances minimales et sont faciles à démarrer (un de mes animaux de compagnie peeves ... enfer de dépendance). –

3

C++ a une bibliothèque standard .

Vous pouvez essayer The C++ Standard Library: Tutorial and Reference. Bien que je ne possède pas moi-même, c'est sur notre book list (que je vous recommande de vérifier), donc ça ne devrait pas être mauvais.

Remarque C++ n'est pas Java, donc les bibliothèques n'ont pas nécessairement la même fonctionnalité. Une autre ressource que vous voulez regarder est Boost, qui sert de source pour les bibliothèques C++ bien écrites pour les choses que la bibliothèque standard manque.

0

Si vous voulez dire la bibliothèque standard C++ je regarderais www.cplusplus.com. Il couvre les normes actuelles. Après vous être familiarisé avec cela, vous pouvez essayer de regarder boost.
Il y a un certain nombre de changements dans le prochain standard C++ 0x. Wikipedia a des informations sur un certain nombre d'entre eux comme le fait SO.

Le livre numéro un, IMO, pour C++ est Effective C++ par Scott Meyers.

1

Java est un langage de machine virtuelle et, en tant que tel, tente d'avoir une API complète pour fournir une méthode indépendante de dessin/d'écriture sur des fichiers/n'importe quoi. Dans les tripes de JRE, ils prennent ces entrées génériques et les utilisent pour faire des choses spécifiques à la plate-forme. En C++, vous êtes celui qui fait ce travail. De nombreuses bibliothèques C++ sont spécifiques à une plate-forme. Voir MFC, ATL ou le code écrit pour XWindows. Il vous appartient de décider comment implémenter une fonctionnalité et voir s'il s'agit d'une fonctionnalité spécifique à la plateforme ou indépendante de la plate-forme.

Si vous écrivez sur Windows ou Unix, je peux vous assurer que l'API de l'OS est très complète et vous permettra de faire ce que vous essayez d'accomplir. Jetez aussi un oeil aux bibliothèques cross platfom comme lib qt.

1

La bibliothèque standard de Java vise à fournir des fonctionnalités prêtes à l'emploi, tandis que la bibliothèque standard C++ vise à fournir des blocs de construction qui ne sont pas définis par le langage principal. La bibliothèque Boost a principalement la même orientation que la bibliothèque standard (avec quelques exceptions telles que le traitement d'image). Je pense que le plus proche que vous pouvez obtenir quelque chose comme la bibliothèque standard de Java est la bibliothèque Poco.

Cependant, quand j'ai essayé sur la bibliothèque Poco, j'ai trouvé que c'était un peu trop orienté C à mon goût.

Autrement dit, ce n'est pas "moderne". Vous obtenez immédiatement cette impression sans même regarder les API, car les docs en ligne utilisent les images de 1990. :-) Cependant, cela peut combler vos besoins.