Standard Template Library (STL) เป็น software library สำหรับ C++ ที่ส่งผลต่อหลายส่วนของ C++ Standard Library มันให้ 4 components ชื่อ algorithms, containers, functions, และ iterators โปรดทราบว่า term "STL" หรือ "Standard Template Library" ไม่ได้ปรากฏที่ไหนใน ISO 14882 C++ standard ดังนั้นการเรียก C++ standard library ว่า STL ผิด คือ STL และ C++ Standard Library เป็น 2 สิ่งต่างกัน STL เป็น subset ของ Standard Library
STL ประกอบด้วย:
Containers (คอนเทนเนอร์)
STL มี sequence containers และ associative containers Containers คือ objects ที่เก็บข้อมูล Standard sequence containers ได้แก่ vector, deque, และ list Standard associative containers ได้แก่ set, multiset, map, multimap, hash_set, hash_map, hash_multiset, และ hash_multimap มี container adaptors เช่น queue, priority_queue, และ stack ซึ่งเป็น containers ด้วย interface เฉพาะ ใช้ containers อื่นเป็น implementation
Iterators (อิเทอเรเตอร์)
Iterator คือ object ที่ช่วยให้โปรแกรมเมอร์ traverse container ได้ STL implement 5 ประเภทของ iterators: input (อ่าน sequence), output (เขียน sequence), forward (อ่าน เขียน และเคลื่อนไปข้างหน้า), bidirectional (เหมือน forward แต่เคลื่อนย้อนหลังได้), และ random access (เคลื่อนที่ได้อิสระจำนวนก้าวใดก็ได้ในหนึ่ง operation) Iterators เป็นฟีเจอร์หลักที่ทำให้ STL มี generality
Algorithms (อัลกอริทึม)
Algorithms ใน STL คือ collection ของ functions ที่ออกแบบมาใช้บน ranges ของ elements Range คือ sequence ของ objects ใดๆ ที่เข้าถึงได้ผ่าน iterators หรือ pointers เช่น array หรือ instance ของ STL containers ตัวอย่าง algorithms: sort (เรียงลำดับ elements ใน range), binary_search (ทดสอบค่ามีใน sorted sequence), min_element (คืนค่า element น้อยที่สุดใน range) หมายเหตุ: algorithms ทั้งหมดใช้กับ data type ใดๆ ที่รับเป็น template ได้