8
votes

Quel est le point de stl?

Je suis programmée C ++ pendant environ un an maintenant et quand je regarde sur le point de voir beaucoup de références à STL.

Quelqu'un peut-il s'il vous plaît dites-moi ce qu'il fait?

et les avantages et désavantageux de celui-ci?

aussi qu'est-ce que cela me donne sur le VCL Borlands ou MFC?

merci


7 commentaires

Les chances sont élevées, vous avez été programmés C pendant un an et découvrez simplement C ++. Sérieusement, C ++ sans stl est articulé.


@ Thorsten79: Ou, s'il ne sait pas vraiment ce que la STL est, il peut utiliser des classes de conteneurs, des algorithmes et des itérateurs dans le cadre de la bibliothèque standard. Le STL approprié a été une bibliothèque de modèles développée peu de temps avant que C ++ soit normalisée, et il a simplement été absorbé dans la bibliothèque standard.


@Jonathan D, VCL et MFC sont principalement des cadres d'interface graphique. STL est une collection de structures de données.


@NICK D: Je n'appelerais pas MFC un cadre :-)


@Nick D et algorithmes, n'oubliez pas les algorithmes


@rstevens: Yeap ;-) @JK: et algorithmes :)


En outre, la VCL est écrite dans l'objet Pascal, pas C ++.


9 Réponses :


0
votes

La STL a Itérateurs . Bien sûr, les collections et les trucs sont utiles, mais les itérateurs d'alimentation sont gigantesques et, à mon humble avis, rend le reste pâle en comparaison.


0 commentaires

23
votes

C'est la bibliothèque standard C ++ qui vous donne toutes sortes de conteneurs très utiles, de chaînes, d'algorithmes pour les manipuler avec etc.

Le terme 'stl' est obsolète IMHO, quelle était la STL est devenue une grande partie de la bibliothèque standard pour C ++.

Si vous faites un développement sérieux C ++, vous devrez vous familiariser avec cette bibliothèque et de préférence le boost Si vous ne l'utilisez pas déjà, vous travaillez probablement au mauvais niveau d'abstraction ou vous vous contraindrez à un petit sous-ensemble ISH de C ++.


5 commentaires

Qu'est-ce que cela me donne sur Borland VCL ou Microsoft MFC?


@Jonathan D: portabilité, du code que vous écrivez et aussi vous-même et vos compétences.


Jonathan D: La capacité d'obtenir un emploi C ++. Prétendre savoir C ++ sans que la capacité d'utiliser la STL va obtenir yuo rejeté au premier niveau de tout entretien d'embauche.


En outre, beaucoup d'autres bibliothèques importantes C ++ telles que Boost attendent et utilisent la sémantique de conteneurs C ++ standard. Si vous n'êtes pas familier avec les idiomes, ils se sentent étranges à utiliser alors que cela ressentira des personnes naturelles qui connaissent la bibliothèque C ++ standard. De plus, MFC est un exemple particulièrement mauvais de bibliothèque C ++, principalement en raison de sa nécessité de compatibilité en retard. N'essayez pas d'essayer d'apprendre de bonne conception de la bibliothèque C ++ de MFC.


Jonathan D: Pendant que MFC dispose de classes de chaîne et de conteneurs, elle est secondaire aux éléments d'interface graphique. La STL (ou, plus précisément, les classes de conteneurs, les itérateurs et les algorithmes) sont complètement indifférentes à l'interface graphique, mais vous fournissent des outils très puissants pour organiser et traiter les données. Je ne connais rien de VCL, mais le MFC et STL sont deux bibliothèques très différentes qui font la plupart des choses différentes.



1
votes

"Avantages et inconvénients" comparés à quoi? Pour écrire tout ce code vous-même? N'est-ce pas évident? C'était de superbes collections et outils pour travailler avec eux


0 commentaires

2
votes

Il fournit des outils utiles courants pour le programmeur! Itérateurs, algorithmes, etc. pourquoi réinventer la roue?


0 commentaires

0
votes

3 commentaires

Le type de chaîne dans la bibliothèque standard n'a jamais fait partie de la STL, ou du moins du STL conçu par Stepanov et Lee.


@Neil tu as raison. Il fait partie de la bibliothèque standard C ++ ( en.wikipedia.org/wiki/c%2b % 2b_standard_library ), pas le stl ( en.wikipedia.org/wiki/standard_template_library). Mais ensuite, je pense que beaucoup de gens disent "le stl" quand ils signifient "la bibliothèque standard C ++". (Le fait qu'ils soient nombreux ne les rendent pas correctement, bien sûr.)


Malgré tout, vous trouvez toujours beaucoup de bibliothèques de chaînes dans le code C ++. Rappelez-vous que RogueWave, CSSTLING + Tout le monde avait l'habitude de penser qu'ils pourraient mieux le faire mieux? Sans oublier que le comptage de référence dans STD :: String n'était pas très sûr dans de nombreuses implémentations.



0
votes

Il représente une bibliothèque de modèles standard

C'est un ensemble de fonctions et de cours qui sont là pour vous faire économiser beaucoup de travail.

Ils sont conçus pour utiliser des modèles, ce qui est là où vous définissez une fonction, mais sans définir quel type de données il fonctionnera.

Par exemple, le vecteur plus ou moins vous permet de disposer de matrices dynamiques. Lorsque vous en créez une instance, vous dites quel type vous voulez que cela fonctionne. Cela peut même être votre propre type de données (classe).

C'est une chose difficile à penser, mais c'est extrêmement puissant et peut vous faire gagner beaucoup de temps.

Lire la lecture dessus maintenant! Vous voulez le regretter.


0 commentaires

3
votes

La STL est la bibliothèque de modèles standard. Comme toute bibliothèque, c'est une collection de code qui rend votre vie plus facile en fournissant un code bien testé et robuste à réutiliser.

  1. Besoin d'une collection (carte, liste, vector, etc.) Ils sont dans la STL
  2. besoin de fonctionner sur une collection (pour la copie, la transformation, la transformation, etc.) Ils sont dans la STL
  3. doit faire des E / S, il y a des cours pour cela.

    Avantages

    1, vous n'avez pas à ré-implémenter des conteneurs standard (CUS, vous aurez le problème de toute façon)

    Lire ce Book par Nicolai M.josuttis pour en savoir plus sur la STL, c'est le meilleur Livre de référence STL là-bas.


0 commentaires

0
votes

Cela vous donne un autre acronyme à lancer des cocktails.

Sérieusement, vérifiez les documents INTRO commençant par ex. Avec le Article Wikipedia sur STL .


1 commentaires

Les programmeurs ne vont pas aux cocktails. Ils vont aux fêtes de Lan.



4
votes

STL signifie une bibliothèque de modèles standard. C'était une bibliothèque conçue principalement par Stepanov et Lee, qui a ensuite été adoptée dans le cadre de la bibliothèque standard C ++. Le terme est devenu peu de sens, mais couvre ces parties de la bibliothèque standard:

  • Conteneurs (vecteurs, cartes, etc.)
  • Itérateurs
  • algorithmes

    Si vous appelez vous-même un programmeur C ++, vous devez vous familiariser avec tous ces concepts et la mise en œuvre de la bibliothèque standard d'eux.


1 commentaires

La rumeur a-t-elle STL représente réellement "Stepanov et Lee!" (Rumeur avait IT, quand même ...)