39 votes

Les programmeurs doivent-ils utiliser la STL ou écrire leur propre code ?

Je ne connais pas grand-chose aux structures de données C++ mais je me demande si vous (les programmeurs) utilisez STL ou écrivez votre propre code ? Après tout, la STL est conçue pour effectuer des tâches telles que la recherche, le remplacement et bien plus encore dans une liste de données.

Quelqu'un n'a vraiment pas besoin d'apprendre beaucoup sur la liste chaînée, la recherche binaire et bien d'autres choses encore, car je pourrais utiliser la STL. Que suggérez-vous ?

116voto

Starkey Points 7030

Vous devriez utiliser la STL, car elle est bien testée et optimisée.

Cela ne signifie pas que vous ne devez pas savoir comment écrire vous-même ces structures de données. Avec cette compétence à votre actif, vous serez en mesure de choisir la meilleure structure de données STL pour votre application.

61voto

Rion Williams Points 22784

Bien que la bibliothèque de modèles standard soit pratique lorsqu'il s'agit d'effectuer des tâches comme celles que vous avez mentionnées, telles que la recherche, le remplacement et l'utilisation de listes liées, elle ne doit pas remplacer la connaissance de ce qui se passe. à l'intérieur de de la bibliothèque.

Vous avez mentionné qu'il n'était pas nécessaire d'apprendre les listes liées, les recherches binaires et "bien d'autres choses encore", mais vous devriez avoir au moins une connaissance pratique du fonctionnement de ces structures de données et procédures, car cela rendra leur utilisation (et le fait de savoir quand les utiliser) beaucoup plus efficace.

En gros, il n'est pas nécessaire de réinventer la roue, mais il faut au moins savoir ce qui permet aux roues de tourner efficacement.

11voto

harald Points 3790

Utilisez la STL et les bibliothèques standard en général quand vous le pouvez. Premièrement, elles sont probablement mieux testées que votre propre code, et deuxièmement, elles aident à garder votre code portable. La seule fois où vous devriez réécrire une de ces fonctionnalités est à des fins d'apprentissage. Il peut être éducatif d'écrire votre propre carte associative ou liste chaînée, mais pour le code de production, restez-en à un code bien testé et conforme aux standards.

7voto

Chad Points 9700

Une connaissance pratique des structures de données sous-jacentes, des méthodes et des applications des outils fournis par la STL fera de vous un bien meilleur programmeur. Savoir quand utiliser tel type de conteneur ou tel algorithme est aussi important qu'une implémentation correcte. Parfois, le moyen le plus simple de comprendre certains des concepts les plus complexes est de les mettre en œuvre soi-même dans le contexte d'un cours sur les structures de données et les algorithmes.

Cela dit, le code de la STL a été écrit par des experts et affiné au fil du temps pour devenir une bibliothèque standard utilisée par des millions de personnes dans le monde. En pratique, il n'y a presque jamais de raison de "faire son propre code", sauf dans des cas extrêmes où les performances (ou la taille) ont une importance critique pour votre application.

3voto

AlexW Points 1633

Juste pour ajouter ma réponse (du commentaire ci-dessus) :

Oui, vous devriez penser à implémenter, par exemple, une séquence, une liste liée, en utilisant votre propre code.

C'est ce qu'on enseigne dans les cours de sciences informatiques et ce n'est pas sans raison. Mais, si vous cherchez à travailler rapidement, utilisez simplement STL.

Je pense simplement que les gens devraient comprendre comment les outils fonctionnent réellement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X