Sự khác biệt giữa Thư viện GNU C++ (libstdC++), "C++ Standard Library", "Standard Template Library" và "SGI STL". Khi lập trình trong Linux với trình biên dịch GCC và lập trình trong Windos trong MSVC (MicroSoft Visual C++), thư viện C++ chuẩn nào đang sử dụng theo mặc định? Cảm ơn!phiên bản của thư viện chuẩn C++
Trả lời
Thư viện chuẩn C++ - định nghĩa chung về chức năng/hành vi phải được thư viện cung cấp (chuỗi, cặp, iostream, vùng chứa, thuật toán, v.v.)).
Thư viện mẫu chuẩn (STL) - một phần của thư viện chuẩn C++ có liên quan đến vùng chứa và thuật toán (và các trình vòng lặp kết hợp hai thứ đó lại với nhau). STL không phải là một phần của thư viện gốc C++.
libstdC++ - triển khai cụ thể thư viện chuẩn C++.
SGI STL - triển khai cụ thể phần STL của thư viện chuẩn C++. Tôi tin rằng đây cũng là một trong những phiên bản đầu tiên của STL. Trước khi STL trở thành một phần của thư viện C++, các nhà phát triển phải tải xuống riêng STL (giống như cách chúng ta hiện đang làm với Boost).
Phát biểu chỉ về nguồn gốc của các thành phần STL của chuẩn C++ thư viện được sử dụng bởi mặc định:
- MSVC sử dụng thư viện Dinkumware (hoặc rõ ràng là một tập hợp con của chúng, vì Dinkumware sẽ bán cho bạn thư viện addon cho MSVC quá: -P)
- GCC sử dụng một phiên bản mở rộng của SGI STL như một phần của libstdC++
Nếu bạn muốn trao đổi trên các STL, có triển khai STL khác như STLport. Chọn thuốc độc của bạn. :-P
Bạn nhầm lẫn "STL" và "thư viện chuẩn C++". Đó là một lỗi phổ biến, nhưng một lỗi dù sao. – sbi
@sbi: Không, tôi không phải là bản thân mình lẫn lộn về hai điều đó, nhưng tôi đã cố nghĩ ra một cách để trả lời câu hỏi của OP. Nhưng cảm ơn cho suy nghĩ của bạn (và downvote của bạn). :-P –
- 1. Phiên bản có thể in của thư viện chuẩn Haskell
- 2. Thư viện chuẩn của Intel (C++)
- 3. Có phiên bản nhiều ký tự strchr() trong thư viện C chuẩn không?
- 4. Làm việc bên trong của thư viện chuẩn C
- 5. sai MySQL thư viện client phiên bản
- 6. Thư viện C để đọc phiên bản EXE từ Linux?
- 7. Bao gồm thư viện chuẩn C++
- 8. C các thư viện phi tiêu chuẩn
- 9. Đâu là tiêu đề của thư viện chuẩn C++
- 10. Danh sách ngoại lệ của thư viện chuẩn C++?
- 11. Có bao nhiêu phiên bản của các tiêu chuẩn C++?
- 12. Hướng dẫn tham khảo thư viện chuẩn C++ 0x
- 13. Liên kết với nhiều phiên bản của thư viện
- 14. Tài liệu thư viện chuẩn của SBCL?
- 15. Sự khác biệt giữa thư viện chuẩn C và thư viện C POSIX
- 16. xây dựng phiên bản tĩnh của các thư viện Poco C++
- 17. Sự khác nhau giữa thư viện chuẩn và thư viện mẫu chuẩn là gì?
- 18. Thư viện Java để chuẩn hóa văn bản
- 19. Điểm chuẩn thư viện Regex
- 20. boost :: tùy chọn thay thế trong Thư viện chuẩn C++
- 21. Thư viện C chuẩn ở đâu trên Mac OS X?
- 22. NDK không tìm thấy thư viện C++ chuẩn
- 23. Thư viện chuẩn dành cho người lớn cho C
- 24. Các lớp ngoại lệ nào trong thư viện chuẩn C++
- 25. Thư viện chuẩn Java - đồ thị?
- 26. Phiên bản HTML của bản nháp tiêu chuẩn C (n1256.pdf)?
- 27. Phạm vi của ngẫu nhiên python.random() từ thư viện chuẩn
- 28. Trình duyệt & phiên bản trong thư viện mẫu?
- 29. Thư viện chuẩn Python có thực sự chuẩn không?
- 30. phiên bản stdfloat.h của stdint.h
Um, STL _was_ một phần của tiêu chuẩn C++ ban đầu năm 1998. (Trên thực tế, sự kết hợp của STL, bắt đầu trễ trong quá trình tiêu chuẩn hóa, làm chậm đáng kể tiêu chuẩn C++ đầu tiên.) SGI STL là một cụ thể (Tôi nghĩ rằng nó thậm chí là bản gốc) thực hiện của STL. Không phải tất cả STL đều đưa nó vào tiêu chuẩn C++ (ví dụ: 'slist') và một số thứ trong phần sau không đến từ STL (ví dụ:' std :: string' như một container STL). – sbi
"STL không phải là một phần của tiêu chuẩn C++ ban đầu" - điều này có thể được xem là chính xác - tiêu chuẩn C++ không đề cập đến cái gọi là "STL" hoặc sai trong đó các thùng chứa và thuật toán tạo nên STL luôn là một phần của tiêu chuẩn C++. –
STL không nằm trong ARM, có thể được coi là một loại tài liệu chuẩn. Nó nằm trong tiêu chuẩn chính thức đầu tiên. –