Monday, September 22, 2008

Standard Template Library

STL là một thư viện template cho C++ được phát triển vào năm 1992 với mong muốn có được những cấu trúc dữ liệu cũng như giải thuật tổng quát nhất nhưng không làm mất đi tính hiệu quả. Thư viện này được đưa vào danh sách các thư viện chuẩn của C++ theo tiêu chuẩn ANSI/ISO với tên gọi Standard Template Library (STL).

STL đã được nhiều tổ chức, hãng phần mềm mở rộng và phát triển; trong đó đáng kể nhất phải kể đến phiên bản SGI-STL của Silicon Graphics và STL Port (hiện đã được tích hợp trong Borland C++ Builder 6). Cũng xuất phát từ ý tưởng của STL (đồng thời cũng sử dụng chính thư viện này làm nền tảng), một số thư viện standard template khác ra đời phục vụ các lớp ứng dụng đặc thù hơn, như thư viện cho ma trận - MTL (trường đại học Notre Dame - Pháp) hay thư viện cho đồ thị - GTL (trường đại học Passau - Đức).

Đặc điểm thư viện STL này là được hỗ trợ trên các trình biên dịch ở cả hai môi trường WINDOWS lẫn UNIX. Vì vậy nên khi sử dụng thư viện này trong xử lý thuận tiện cho việc chia sẽ mã nguồn với cộng đồng phát triển.

STL có một số thành phần cơ bản sau: containers, iterators, algorithms, và các functors. Trong đó, containers đóng vai trò như là các kiểu dữ liệu, bao gồm: vector, list, deque ; set, multiset, map, multimap, hash_set, hash_multiset, hash_map, hash_multimap, bitset và valarray.

Sau đây là một số địa chỉ tham khảo về STL:

- SGI STL: http://www.sgi.com/tech/stl/
- STL Port: http://www.stlport.org/
- STL introduction: http://en.wikipedia.org/wiki/Standard_Template_Library
- Matrix Template Library: http://osl.iu.edu/research/mtl/
- Graph Template Library: http://www.infosun.fmi.uni-passau.de/GTL/index.html
- Alexander Stepanov Inteview:
http://www.stlport.org/resources/StepanovUSA.html
http://www.sgi.com/tech/stl/drdobbs-interview.html

- Tutorial:
http://www.infosys.tuwien.ac.at/Research/Component/tutorial/prwmain.htm
http://www.cs.rpi.edu/~musser/stl-book/