STL คือชุดรวม คำสั่ง/algortihm/โครงสร้างที่เราใช้กันอยู่บ่อยๆนะครับ เพื่อความสะดวกในการเขียน STL นั้นเป็นของ C++ ย้ำ C++ ไม่ใช่ C ฉะนั้น C จะใช้ไม่ได้แน่นอนครับ
คำถาม : ทำไมต้องใช้ STL
ตอบ : สมมุติว่าคุณกำลังเขียนโปรแกรมหนึ่งอยู่ซึ่งมีเวลาจำกัด คุณจะเป็นจะต้องใช้ Red-black tree แต่ด้วยอัลกอริทึมที่ยาวเหยียด ของ Red-black tree คุณคงจะทำไม่ทันแน่ๆ ฉะนั้นทางออกของคุณคือใช้คำสั่งสำเร็จรูป หรือ STL นั่นเอง
วิธีใช้ STL คือ include header เข้ามาโดยไม่ต้องใส่นามสกุล เช่น #include<algorithm>
Header ที่มีใน STL 2011 (แปลจาก cplusplus.com)
- <algorithm>
- อัลกอริทึมสำเร็จรูปต่างๆ (เช่น sort seach) (library )
- <chrono>
- จัดการเวลา (header)
- <complex>
- จัดการตัวเลข (เช่น cos log) (header)
- <exception>
- แก้ปัญหาบัคโปรแกรม (header)
- <functional>
- ทำ operator เป็น function (header)
- <initializer_list>
- Initializer list (header)
- <iterator>
- จัดการตัวชี้ (header)
- <limits>
- เก็บขอบเขตข้อมูล (header)
- <locale>
- ฟังก์ชันของ c ในรูป class (header)
- <memory>
- จัดการหน่วยความจำแรม (header)
- <new>
- จัดการหน่วยความจำแบบพลวัต (header)
- <numeric>
- Generalized numeric operations (header)
- <random>
- จัดการการสุ่ม (header)
- <ratio>
- Ratio header (header)
- <regex>
- Regular Expressions (header)
- <stdexcept>
- แก้ปัญหาบัตในโปรแกรม (header)
- <string>
- จัดการสายอักขระ (header)
- <system_error>
- ข้อผิดพลาดระบบ (header)
- <tuple>
- Tuple library (header)
- <typeinfo>
- Type information (header)
- <type_traits>
- type_traits (header)
- <utility>
- Utility components (header)
- <valarray>
- Library for arrays of numeric values (header)
โครงสร้าง ข้อมููลที่มีใน STL C++2011
Container class templates
Sequence containers:- array
- Array class (class template )
- vector
- Vector (class template )
- deque
- Double ended queue (class template )
- forward_list
- Forward list (class template )
- list
- List (class template )
Container adaptors:
- stack
- LIFO stack (class template )
- queue
- FIFO queue (class template )
- priority_queue
- Priority queue (class template )
Associative containers:
- set
- Set (class template )
- multiset
- Multiple-key set (class template )
- map
- Map (class template )
- multimap
- Multiple-key map (class template )
Unordered associative containers:
- unordered_set
- Unordered Set (class template )
- unordered_multiset
- Unordered Multiset (class template )
- unordered_map
- Unordered Map (class template )
- unordered_multimap
- Unordered Multimap (class template )
ไม่มีความคิดเห็น:
แสดงความคิดเห็น