Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ไลบรารีมาตรฐาน STL และ C++ แตกต่างกันอย่างไร


ไลบรารีเทมเพลตมาตรฐาน (STL) คือไลบรารีซอฟต์แวร์สำหรับภาษาการเขียนโปรแกรม C++ ที่ส่งผลต่อส่วนต่างๆ ของไลบรารีมาตรฐาน C++ มันมีสี่องค์ประกอบที่เรียกว่าอัลกอริธึม คอนเทนเนอร์ ฟังก์ชัน และตัววนซ้ำ โปรดทราบว่าคำว่า "STL" หรือ "ไลบรารีเทมเพลตมาตรฐาน" จะไม่ปรากฏในมาตรฐาน ISO 14882 C++ ดังนั้นการอ้างถึงไลบรารีมาตรฐาน C++ เนื่องจาก STL ไม่ถูกต้อง เช่น STL และ C++ Standard Library เป็น 2 สิ่งที่แตกต่างกันโดยที่ก่อนหน้านี้เป็นส่วนย่อยของหลัง

STL ประกอบด้วย

คอนเทนเนอร์

STL ประกอบด้วยคอนเทนเนอร์ลำดับและคอนเทนเนอร์ที่เชื่อมโยง คอนเทนเนอร์เป็นวัตถุที่เก็บข้อมูล คอนเทนเนอร์ลำดับมาตรฐานประกอบด้วยเวกเตอร์ deque และรายการ คอนเทนเนอร์ที่เชื่อมโยงมาตรฐานถูกตั้งค่า, มัลติเซ็ต, แผนที่, มัลติแมป, hash_set, hash_map, hash_multiset และ hash_multimap นอกจากนี้ยังมีคิวอะแดปเตอร์คอนเทนเนอร์, priority_queue และสแต็ก ซึ่งเป็นคอนเทนเนอร์ที่มีอินเทอร์เฟซเฉพาะ โดยใช้คอนเทนเนอร์อื่นในการนำไปใช้

ตัววนซ้ำ

iterator เป็นอ็อบเจ็กต์ที่ช่วยให้โปรแกรมเมอร์สามารถสำรวจคอนเทนเนอร์ได้ STL ใช้ตัววนซ้ำห้าประเภท:อินพุต (ใช้เพื่ออ่านลำดับของค่า) เอาต์พุต (ใช้เพื่อเขียนลำดับของค่า) ไปข้างหน้า (ที่สามารถอ่าน เขียนถึง และเดินหน้าได้) แบบสองทิศทาง (เช่น ไปข้างหน้า) ตัววนซ้ำ แต่สามารถย้อนกลับได้) และการเข้าถึงโดยสุ่ม (ย้ายได้อย่างอิสระจำนวนขั้นตอนในการดำเนินการเดียว) ตัววนซ้ำเป็นคุณลักษณะหลักที่ทำให้ STL มีลักษณะทั่วไปได้

อัลกอริทึม

อัลกอริทึมใน STL คือชุดของฟังก์ชันที่ออกแบบมาเป็นพิเศษเพื่อใช้กับช่วงขององค์ประกอบ ช่วงคือลำดับของอ็อบเจ็กต์ใดๆ ที่สามารถเข้าถึงได้ผ่านตัววนซ้ำหรือพอยน์เตอร์ เช่น อาร์เรย์หรืออินสแตนซ์ของคอนเทนเนอร์ STL บางตัว ตัวอย่างของอัลกอริทึมใน STL:sort (จัดเรียงองค์ประกอบในช่วง), binary_search (ทดสอบว่ามีค่าอยู่ในลำดับการเรียงลำดับหรือไม่), min_element (ส่งคืนองค์ประกอบที่เล็กที่สุดในช่วง) ฯลฯ โปรดทราบว่าอัลกอริธึมเหล่านี้สามารถนำไปใช้กับประเภทข้อมูลที่ยอมรับได้ เป็นแม่แบบ

ในภาษาการเขียนโปรแกรม C++ ไลบรารีมาตรฐาน C++ คือชุดของคลาสและฟังก์ชัน ซึ่งเขียนด้วยภาษาหลักและเป็นส่วนหนึ่งของมาตรฐาน ISO ของ C++ ไลบรารีมาตรฐาน C++ มีคอนเทนเนอร์ทั่วไปหลายตัว ฟังก์ชันเพื่อใช้และจัดการคอนเทนเนอร์เหล่านี้ ออบเจ็กต์ฟังก์ชัน สตริงและสตรีมทั่วไป (รวมถึงแบบโต้ตอบและไฟล์ I/O) รองรับคุณลักษณะภาษาบางรายการ และฟังก์ชันสำหรับงานประจำวัน เช่น การค้นหาสแควร์ รากของตัวเลข ต่อไปนี้เป็นคุณสมบัติบางอย่างของไลบรารีมาตรฐาน C++ -

สตรีม

ไลบรารีเหล่านี้ใช้เพื่อจัดการกับสตรีมประเภทต่างๆ ที่มีอยู่ใน C++ ตัวอย่างเช่น สตรีมแสดงถึงสตรีมไฟล์โดยทั่วไป และคลาสนี้สามารถใช้เพื่อสร้างไฟล์ เขียนข้อมูลไปยังไฟล์ และอ่านข้อมูลจากไฟล์ สตรีมแสดงถึงสตรีมสตริง และโดยทั่วไปใช้เพื่อจัดการสตริง เป็นต้น

คอนเทนเนอร์

นี่คือชุดของคลาสที่ใช้ในการจัดเก็บข้อมูลในประเภทข้อมูลต่างๆ เช่น เวกเตอร์ ชุด แผนที่ สแต็ค คิว ฯลฯ สิ่งเหล่านี้เป็นส่วนประกอบของ STL

ไลบรารีทั่วไป

ไลบรารีต่างๆ เช่น อัลกอริธึม, โครโนสำหรับเวลา, ตัววนซ้ำ, หน่วยความจำ ฯลฯ

คลังตัวเลข

ไลบรารีนี้เป็นชุดของส่วนประกอบที่โปรแกรม C++ อาจใช้เพื่อดำเนินการเกี่ยวกับกึ่งตัวเลข ตัวอย่างเช่น กำหนดเทมเพลตของคลาส และฟังก์ชันมากมายสำหรับการแสดงและจัดการตัวเลขที่ซับซ้อน ใช้สำหรับสร้างตัวเลขสุ่ม (pseudo-) เป็นต้น

การทำเกลียว

นี่คือไลบรารี่ที่เปิดตัวใน C++11 ซึ่งโดยทั่วไปเกี่ยวข้องกับการทำงานพร้อมกัน

ไลบรารีมาตรฐาน C

แต่ละส่วนหัวจากไลบรารีมาตรฐาน C จะรวมอยู่ในไลบรารีมาตรฐาน C++ โดยใช้ชื่ออื่น ซึ่งสร้างขึ้นโดยการลบ .h และเพิ่ม 'c' ในตอนเริ่มต้น เช่น 'time.h' กลายเป็น 'ctime'