2010-02-10 46 views

Trả lời

6

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).

+2

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

+0

"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++. –

+1

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. –

4

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

+0

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

+0

@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 –

Các vấn đề liên quan