Was sind die Unterschiede zwischen der GNU C++ - Bibliothek (libstdC++), "C++ Standard Library", "Standard Template Library" und "SGI STL". Bei der Programmierung in Linux mit Compiler GCC und Programmierung in Windos in MSVC (MicroSoft Visual C++), die die Standard-C++ Bibliotheken standardmäßig verwenden? Danke!Versionen der C++ - Standardbibliothek
Antwort
C++ - Standardbibliothek - die generische Definition, welche Funktionalität/Verhalten von der Bibliothek bereitgestellt werden muss (Strings, Paare, Iostream, Container, Algorithmen usw.), obwohl die Besonderheiten je nach Version des C++ - Standards variieren).
Standard Template Library (STL) - der Teil der C++ - Standardbibliothek, der mit Containern und Algorithmen zu tun hat (und den Iteratoren, die diese beiden zusammenbringen). Die STL war nicht Teil der ursprünglichen C++ - Bibliothek.
libstdC++ - eine spezifische Implementierung der C++ - Standardbibliothek.
SGI STL - eine spezifische Implementierung des STL-Teils der C++ - Standardbibliothek. Ich glaube, das war auch eine der ersten Versionen der STL. Bevor die STL Teil der C++ - Bibliothek wurde, mussten Entwickler die STL separat herunterladen (genauso wie wir es derzeit mit Boost machen).
nur über die Herkunft der STL Komponenten der Standard-C++ Bibliotheken standardmäßig verwendet Sprechen:
- MSVC verwendet Dinkumware Bibliotheken (oder scheinbar eine Teilmenge davon, weil Dinkumware werden Sie Add-on-Bibliotheken für MSVC verkaufen: -P)
- GCC eine erweiterte Version von SGI STL als Teil libstdC++ verwendet
Wenn Sie die STL auslagern wollen, gibt es andere STL-Implementierungen wie STLport. Wähle dein Gift. :-P
Sie verwechseln "STL" und "C++ Standard-Bibliothek". Das ist ein häufiger Fehler, aber trotzdem ein Fehler. – sbi
@sbi: Nein, ich bin nicht selbst verwirrt über die beiden, aber ich habe versucht, einen Weg zu finden, die Frage des OP zu beantworten. Aber danke für deine Gedanken (und deinen Downvote). :-P –
- 1. Inneres Arbeiten der C-Standardbibliothek
- 2. C++ Standardbibliothek Ausnahmeliste?
- 3. Wo sind die Header der C++ - Standardbibliothek
- 4. Visual Studio 2013 C++ Standardbibliothek
- 5. Hat Objective-C eine Standardbibliothek?
- 6. Stabilisierung der Standardbibliothek qsort?
- 7. Dokumentation der SBCL-Standardbibliothek?
- 8. Verwendung von C-Strings in der C++ - Standardbibliothek
- 9. Matrix Standardbibliothek
- 10. Welche Ausnahmeklassen befinden sich in der C++ - Standardbibliothek?
- 11. Gibt es in der C++ - Standardbibliothek eine reine virtuelle Funktion?
- 12. Komplette Online-Referenz für die C-Standardbibliothek?
- 13. C++ - Standardbibliothek - Std :: setenv vs setenv
- 14. Verwendung der Standardbibliothek mit Clang und LibTooling
- 15. Calltree für c + + Programm zur Standardbibliothek
- 16. C# 2-Versionen der gleichen MDF-Datei
- 17. C# und CLR-Versionen
- 18. PEP 257 Docstring in der Standardbibliothek?
- 19. Slicing eine Scheibe mit der Standardbibliothek
- 20. Bereich random.random Python() aus der Standardbibliothek
- 21. Schlechter Code aus der Python-Standardbibliothek
- 22. JavaScript-ähnliches Objekt in der Python-Standardbibliothek?
- 23. Wandzeit in Python mit der Standardbibliothek abrufen?
- 24. pylint nicht einige der Standardbibliothek zu erkennen
- 25. Diagnose von EXC_BAD_INSTRUCTION in der Swift-Standardbibliothek
- 26. Nebenwirkungen freie Methoden in der Java-Standardbibliothek
- 27. Embed Python3 ohne Standardbibliothek
- 28. nicht übereinstimmende C++ Header-Versionen
- 29. Hat Fortran eine Standardbibliothek?
- 30. Gibt es eine logische (boolesche) XOR-Funktion in der C- oder C++ - Standardbibliothek?
Äh, der STL _was_ Teil des ursprünglichen C++ Standards von 1998. (In der Tat verzögerte die Einbeziehung der STL, die spät während des Standardisierungsprozesses begann, den ersten C++ Standard erheblich.) Die SGI STL ist eine spezifische (Ich denke, es ist sogar die ursprüngliche) Umsetzung der STL. Nicht alle der STL schafften es in den C++ - Standard (z. B. "slist"), und einige von den Letzteren stammten nicht aus der STL (z. B. "std :: string" als ein STL-Container). – sbi
"Die STL war nicht Teil des ursprünglichen C++ - Standards" - dies kann entweder als korrekt angesehen werden - der C++ - Standard bezieht sich nirgends auf etwas, das "STL" genannt wird oder falsch, weil die Container und Algorithmen, aus denen die STL besteht, schon immer Teil waren des C++ Standards. –
Die STL war nicht im ARM, was als eine Art Standarddokument angesehen werden könnte. Es war in der ersten offiziellen Norm. –