Was ist der Sinn von STL?

8

Ich programmiere C ++ seit ungefähr einem Jahr und wenn ich darüber nachschaue, sehe ich viele Referenzen auf STL.

Kann jemand bitte mir sagen, was es tut?

und die Vorteile und Nachteile davon?

auch was gibt es mir über die Borlands VCL oder MFC?

Danke

    
Jonathan D 25.03.2010, 13:40
quelle

9 Antworten

23

Es ist die C ++ - Standardbibliothek, die Ihnen alle möglichen Arten von sehr nützlichen Containern, Strings und Algorithmen zur Verfügung stellt, um sie mit usw zu manipulieren.

Der Begriff 'STL' ist veraltet IMHO, was früher die STL war, ist ein großer Teil der Standardbibliothek für C ++ geworden.

Wenn Sie eine ernsthafte C ++ - Entwicklung durchführen, müssen Sie mit dieser Bibliothek und vorzugsweise der Boost -Bibliothek vertraut sein. Wenn Sie es nicht bereits verwenden, arbeiten Sie wahrscheinlich auf der falschen Abstraktionsebene oder Sie beschränken sich auf eine kleine Teilmenge von C ++.

    
Timo Geusch 25.03.2010, 13:43
quelle
4

STL steht für Standard Template Library. Dies war eine hauptsächlich von Stepanov und Lee entworfene Bibliothek, die dann als Teil der C ++ Standard Library übernommen wurde. Der Begriff wird allmählich bedeutungslos, aber deckt diese Teile der Standardbibliothek ab:

  • Container (Vektoren, Karten etc.)
  • Iteratoren
  • Algorithmen

Wenn Sie sich C ++ - Programmierer nennen, sollten Sie mit all diesen Konzepten und der Implementierung der Standardbibliothek vertraut sein.

    
anon 25.03.2010 13:49
quelle
3

Die STL ist die Standardvorlagenbibliothek. Wie bei jeder Bibliothek handelt es sich um eine Sammlung von Code, die Ihnen das Leben erleichtert, indem Sie gut getesteten, robusten Code zur Wiederverwendung bereitstellen.

  1. Brauchen Sie eine Sammlung (Karte, Liste, Vektor, usw.) sie sind in der STL
  2. Sie müssen mit einer Sammlung arbeiten (for_each, kopieren, transformieren usw.), die sich in der STL befinden
  3. Müssen I / O tun, es gibt Klassen dafür.

Vorteile

1, Sie müssen Standardcontainer nicht neu implementieren (Sie werden es sowieso falsch verstehen)

Lesen Sie dieses Buch von Nicolai M.Josuttis, um mehr über die STL zu erfahren, es ist das beste STL-Nachschlagewerk.

    
Glen 25.03.2010 13:47
quelle
2

Es bietet allgemeine nützliche Werkzeuge für den Programmierer! Iteratoren, Algorithmen usw. Warum erfinden Sie das Rad neu?

    
Bryan Denny 25.03.2010 13:44
quelle
1

"Vorteile und Nachteile" im Vergleich zu was? All diesen Code selbst schreiben? Das ist nicht offensichtlich? Es hat großartige Sammlungen und Werkzeuge, um mit ihnen zu arbeiten

    
Andrey 25.03.2010 13:43
quelle
0

Wikipedia hat einen guten Überblick: Ссылка

Die STL behebt einen großen Mangel an C ++ - das Fehlen eines Standard-String-Typs. Dies hat unzählige Kopfschmerzen verursacht, da es Tausende von String-Implementierungen gab, die nicht gut zusammenarbeiten.

    
Two Bit Gangster 25.03.2010 13:45
quelle
0

Es steht für Standardvorlagenbibliothek

Es ist eine Reihe von Funktionen und Klassen, die Ihnen viel Arbeit ersparen.

Sie sind so konzipiert, dass sie Vorlagen verwenden, wo Sie eine Funktion definieren, aber nicht definieren, an welchem ​​Datentyp sie arbeiten wird.

zum Beispiel, Vektor mehr oder weniger können Sie dynamische Arrays haben. Wenn Sie eine Instanz davon erstellen, sagen Sie, für welchen Typ sie arbeiten soll. Dies kann sogar Ihr eigener Datentyp (Klasse) sein.

Es ist schwer daran zu denken, aber es ist sehr mächtig und kann Ihnen viel Zeit sparen.

Lesen Sie es jetzt auf! Du willst es bereuen.

    
thecoshman 25.03.2010 13:46
quelle
0

Es gibt Ihnen ein weiteres Akronym, um auf Cocktailpartys herumzuschleudern.

Im Ernst, überprüfen Sie die Intro-Dokumente, die z. mit dem Wikipedia Artikel über STL .

    
Dirk Eddelbuettel 25.03.2010 13:47
quelle
0

Die STL hat Iterators . Sicher, Sammlungen und andere Dinge sind nützlich, aber die Macht-Iteratoren sind gigantisch und machen meiner Meinung nach den Rest blass im Vergleich.

    
Björn Pollex 25.03.2010 13:42
quelle

Tags und Links