Quali sono le differenze tra la libreria GNU C++ (libstdC++), "C++ Standard Library", "Standard Template Library" e "SGI STL". Quando si programma in Linux con il compilatore GCC e si programma in Windos in MSVC (MicroSoft Visual C++), che le librerie standard C++ stanno usando di default? Grazie!versioni della libreria standard C++
risposta
Libreria standard C++ - la definizione generica di quale funzionalità/comportamento deve essere fornita dalla libreria (stringhe, coppie, iostream, contenitori, algoritmi, ecc. Anche se le specifiche variano a seconda della versione dello standard C++).
Standard Template Library (STL) - la parte della libreria standard C++ che ha a che fare con contenitori e algoritmi (e gli iteratori che riuniscono questi due elementi). STL non faceva parte della libreria C++ originale.
libstdC++ - un'implementazione specifica della libreria standard C++.
SGI STL - un'implementazione specifica della parte STL della libreria standard C++. Credo che questa sia stata anche una delle prime versioni di STL. Prima che la STL diventasse parte della libreria C++, gli sviluppatori dovevano scaricare separatamente la STL (allo stesso modo che facciamo con Boost).
Parlando solo circa la provenienza dei componenti STL dello standard C++ librerie usate di default:
- MSVC utilizza le librerie Dinkumware (o apparentemente un sottoinsieme di esso, perché Dinkumware si vendono le librerie addon per MSVC anche: -P)
- GCC utilizza una versione estesa di SGI STL come parte di libstdC++
Se si desidera scambiare lo STL, ci sono altre implementazioni STL come STLport. Scegli il tuo veleno. :-P
Si confondono "STL" e "Libreria standard C++". Questo è un errore comune, ma comunque un errore. – sbi
@sbi: No, non sono io stesso confuso riguardo ai due, ma stavo cercando di pensare a un modo per rispondere alla domanda dell'OP. Ma grazie per i tuoi pensieri (e il tuo downvote). :-P –
- 1. Funzionamento interno della libreria standard C
- 2. Libreria standard Intel (C++)
- 3. Quanto l'estensibilità della libreria standard C influisce sui programmi C++?
- 4. Versione stampabile della libreria standard Haskell
- 5. Quante versioni degli standard C++ ci sono?
- 6. Libreria standard matura per C
- 7. Include la libreria standard C++
- 8. Filettatura di sicurezza della libreria standard C su OS X
- 9. C++ 0x manuale di riferimento della libreria standard
- 10. boost :: alternativa opzionale nella libreria standard C++
- 11. Libreria di strutture dati standard in C?
- 12. Differenza tra libreria standard C e libreria POSIX
- 13. Matrix Libreria standard
- 14. Etichette libreria standard
- 15. libreria standard `tipo file`
- 16. MacPorts Clang 3.1 installazione della libreria standard mancante?
- 17. Libreria std C++ che collega con diversi standard C++
- 18. Come alias delle funzioni della libreria C?
- 19. Libreria standard .NET rispetto allo standard .NET
- 20. La libreria standard Python è veramente standard?
- 21. PHP: Come chiamare le funzioni della libreria standard
- 22. Dove trovo il codice della libreria standard Python?
- 23. java: usa due versioni della stessa libreria in una webapp
- 24. Cos'è la scintilla della libreria di versioni SparkSession
- 25. accesso alla documentazione della libreria standard ruby localmente
- 26. Come posso ottenere il codice sorgente della libreria standard Idris?
- 27. Qual è la differenza tra la libreria standard e la libreria di modelli standard?
- 28. dove trovare il codice sorgente per la libreria standard C++
- 29. Collegamento di libreria C con nome non standard
- 30. Perché alcuni identificatori nella libreria C++ standard sono brevi?
Um, la parte STL era parte dello standard C++ originale del 1998. (In effetti, l'incorporazione del STL, iniziato in ritardo durante il processo di standardizzazione, ritardava significativamente il primo standard C++.) Il SGI STL è uno specifico (Penso che sia anche l'originale) implementazione della STL. Non tutti gli STL sono stati convertiti nello standard C++ (ad es. 'Slist') e alcuni di ciò che è contenuto nell'ultimo non provengono dall'STL (ad es.' Std :: string' come contenitore STL). – sbi
"L'STL non faceva parte dello standard C++ originale" - questo può essere visto come corretto - lo standard C++ da nessuna parte si riferisce a qualcosa chiamato "STL" o errato in quanto i contenitori e gli algoritmi che compongono l'STL sono sempre stati parte dello standard C++. –
L'STL non era nell'ARM, che potrebbe essere considerato una sorta di documento standard. Era nel primo standard ufficiale. –