Standard Template Library (STL) คือชุดของคลาสเทมเพลต C ++ เพื่อจัดเตรียมโครงสร้างข้อมูลการเขียนโปรแกรมทั่วไปและฟังก์ชันต่างๆเช่นรายการสแต็กอาร์เรย์ ฯลฯ ในบทความ STL ใน C ++ นี้เราจะพูดถึงคำแนะนำต่อไปนี้:
ไปต่อกับบทความนี้เกี่ยวกับ STL ใน C ++
เทมเพลต C ++
C ++ มีคุณลักษณะของเทมเพลตที่ช่วยให้ฟังก์ชันและคลาสทำงานกับประเภททั่วไปได้ สิ่งนี้ช่วยให้สามารถใช้ฟังก์ชันหรือคลาสซ้ำได้และช่วยให้สามารถทำงานกับข้อมูลประเภทต่างๆได้หลายประเภทโดยไม่ต้องเขียนซ้ำสำหรับแต่ละประเภท
ไปต่อกับบทความนี้เกี่ยวกับ STL ใน C ++
ฟังก์ชันทั่วไปและ STL
ในขณะที่การเขียนโปรแกรมหลายครั้งมีความจำเป็นในการสร้างฟังก์ชันที่ดำเนินการเหมือนกัน แต่ทำงานกับชนิดข้อมูลที่แตกต่างกัน ดังนั้นเพื่อเอาชนะปัญหานี้ C ++ มีคุณสมบัติในการสร้างฟังก์ชันทั่วไปเดียวแทนที่จะเป็นฟังก์ชันต่างๆซึ่งสามารถทำงานกับชนิดข้อมูลที่แตกต่างกันได้โดยใช้พารามิเตอร์เทมเพลต คอลเลกชันของคลาสและฟังก์ชัน genric เหล่านี้เรียกว่า Standard Template Library (STL)
ส่วนประกอบของ STL ซึ่งปัจจุบันเป็นส่วนหนึ่งของไลบรารี C ++ มาตรฐานถูกกำหนดไว้ในเนมสเปซ std ดังนั้นเราจึงต้องใช้คำสั่งการใช้เนมสเปซเพื่อนำเข้าสู่โปรแกรมของเรา
ไวยากรณ์:
การใช้เนมสเปซมาตรฐาน
STL มีสามองค์ประกอบ
ตู้คอนเทนเนอร์
อัลกอริทึม
ตัวทำซ้ำ
ส่วนประกอบทั้งสามนี้ทำงานร่วมกันอย่างประสานกันเพื่อให้การสนับสนุนโซลูชันการเขียนโปรแกรมที่หลากหลาย อัลกอริทึมจ้างตัวทำซ้ำเพื่อดำเนินการที่เก็บไว้ในคอนเทนเนอร์
คอนเทนเนอร์คือวัตถุที่จัดเก็บข้อมูลในหน่วยความจำให้เป็นระเบียบ คอนเทนเนอร์ใน STL ถูกนำไปใช้โดยคลาสเทมเพลตดังนั้นจึงสามารถแก้ไขและปรับแต่งได้อย่างง่ายดายเพื่อเก็บข้อมูลประเภทต่างๆ
ขั้นตอนที่ใช้ในการประมวลผลข้อมูลที่มีอยู่ในคอนเทนเนอร์ถูกกำหนดเป็นอัลกอริทึม STL มีอัลกอริทึมประเภทต่างๆมากมายเพื่อให้การสนับสนุนงานเช่นการเริ่มต้นการค้นหาการคัดลอกการเรียงลำดับและการรวมการคัดลอกการเรียงลำดับและการรวม อัลกอริทึมถูกนำไปใช้โดยฟังก์ชันเทมเพลต
ประเภทการแปลงใน c ++
ตัววนซ้ำสามารถกำหนดเป็นวัตถุที่ชี้ไปยังองค์ประกอบในคอนเทนเนอร์ ตัวทำซ้ำสามารถใช้เพื่อย้ายผ่านเนื้อหาของคอนเทนเนอร์ ตัวทำซ้ำได้รับการจัดการเช่นเดียวกับตัวชี้ เราสามารถเพิ่มหรือลดได้ Iterators เชื่อมต่ออัลกอริทึมกับคอนเทนเนอร์และมีบทบาทสำคัญในการจัดการข้อมูลที่จัดเก็บในคอนเทนเนอร์
ไปต่อกับบทความนี้เกี่ยวกับ STL ใน C ++
ตู้คอนเทนเนอร์
STL กำหนดตู้คอนเทนเนอร์สิบตู้ซึ่งแบ่งออกเป็นสามประเภท
ตู้คอนเทนเนอร์ | คำอธิบาย | ไฟล์ส่วนหัว | Iterator |
เวกเตอร์ | สามารถกำหนดเป็นอาร์เรย์แบบไดนามิก อนุญาตให้เข้าถึงองค์ประกอบใด ๆ โดยตรง | การเข้าถึงแบบสุ่ม | |
รายการ | มันเป็นรายการเชิงเส้นสองทิศทาง ช่วยให้สามารถแทรกและลบได้ทุกที่ | แบบสองทิศทาง | |
และ | มันเป็นคิวสองปลาย อนุญาตให้แทรกและลบทั้งสองด้าน อนุญาตให้เข้าถึงองค์ประกอบใด ๆ โดยตรง | การเข้าถึงแบบสุ่ม | |
ชุด | เป็นภาชนะสำหรับจัดเก็บชุดเฉพาะ ช่วยให้ค้นหาอย่างรวดเร็ว | แบบสองทิศทาง | |
หลายชุด | เป็นคอนเทนเนอร์เชื่อมโยงสำหรับจัดเก็บชุดที่ไม่ซ้ำกัน | แบบสองทิศทาง | |
แผนที่ | เป็นคอนเทนเนอร์เชื่อมโยงสำหรับจัดเก็บคู่คีย์ / ค่าที่ไม่ซ้ำกัน แต่ละคีย์เชื่อมโยงกับค่าเดียวเท่านั้น | แบบสองทิศทาง | |
มัลติแมป | เป็นคอนเทนเนอร์เชื่อมโยงสำหรับจัดเก็บคีย์ / ค่าซึ่งคีย์หนึ่งอาจเชื่อมโยงกับค่ามากกว่าหนึ่งค่า (การแมปแบบหนึ่งต่อหลายค่า) ช่วยให้สามารถค้นหาตามคีย์ | แบบสองทิศทาง | |
ซ้อนกัน อัลกอริทึมจัดเรียง c ++ | สแต็กมาตรฐานเป็นไปตาม last-in-first-out (LIFO) | ไม่มีตัวทำซ้ำ | |
คิว | คิวมาตรฐานตามก่อนเข้าก่อนออก (FIFO) | ไม่มีตัวทำซ้ำ | |
ลำดับความสำคัญคิว | องค์ประกอบแรกออกเป็นองค์ประกอบที่มีลำดับความสำคัญสูงสุดเสมอ | ไม่มีตัวทำซ้ำ |
ลำดับคอนเทนเนอร์
คอนเทนเนอร์ลำดับจะจัดเก็บองค์ประกอบตามลำดับเชิงเส้น องค์ประกอบทั้งหมดมีความสัมพันธ์ซึ่งกันและกันตามตำแหน่งตามเส้น อนุญาตให้มีการแทรกองค์ประกอบและทั้งหมดนี้สนับสนุนการดำเนินการหลายอย่าง
STL มีองค์ประกอบลำดับสามประเภท:
- เวกเตอร์
- รายการ
- และ
ภาชนะที่เกี่ยวข้อง:
ได้รับการออกแบบในลักษณะที่รองรับการเข้าถึงองค์ประกอบโดยตรงโดยใช้คีย์ พวกเขาไม่ได้เรียงตามลำดับ มีสี่ประเภท
คอนเทนเนอร์ที่เชื่อมโยง:
- ชุด
- หลายชุด
- แผนที่
- Multimap
คอนเทนเนอร์ทั้งหมดข้างต้นจัดเก็บข้อมูลในโครงสร้างที่เรียกว่าทรีซึ่งอำนวยความสะดวกอย่างรวดเร็ว
การค้นหาการลบและการแทรกต่างจากลำดับ ชุดคอนเทนเนอร์หรือชุดหลายชุดสามารถจัดเก็บรายการต่างๆและจัดเตรียมการดำเนินการสำหรับการจัดการโดยใช้ค่าเป็นกุญแจ
และแผนที่หรือ Multimap ใช้ในการจัดเก็บรายการเป็นคู่ซึ่งเรียกว่าคีย์และอื่น ๆ
เรียกว่าค่า
ภาชนะที่ได้มา:
STL จัดเตรียมคอนเทนเนอร์ที่ได้รับสามคอนเทนเนอร์ ได้แก่ สแต็กคิวและลำดับความสำคัญ สิ่งเหล่านี้เรียกอีกอย่างว่าอะแดปเตอร์คอนเทนเนอร์
คอนเทนเนอร์ที่ได้รับมีสามประเภท:
1. สแต็ค
2. คิว
3. Priority_quue
สามารถสร้างสแต็คคิวและลำดับความสำคัญได้อย่างง่ายดายจากคอนเทนเนอร์ลำดับต่างๆ คอนเทนเนอร์ที่ได้รับมาไม่รองรับตัวทำซ้ำดังนั้นเราจึงไม่สามารถใช้เพื่อจัดการข้อมูลได้ อย่างไรก็ตามพวกเขาสนับสนุนฟังก์ชันสมาชิกสองฟังก์ชัน pop () และ push () สำหรับการดำเนินการลบและแทรก
ไปต่อกับบทความนี้เกี่ยวกับ STL ใน C ++
อัลกอริทึม
อัลกอริทึมเป็นฟังก์ชันที่สามารถใช้ได้โดยทั่วไปในคอนเทนเนอร์ต่างๆสำหรับการประมวลผลเนื้อหา แม้ว่าแต่ละคอนเทนเนอร์จะมีฟังก์ชันสำหรับการทำงานพื้นฐาน แต่ STL มีอัลกอริทึมมาตรฐานมากกว่าหกสิบรายการเพื่อรองรับการดำเนินการที่ขยายหรือซับซ้อน อัลกอริทึมมาตรฐานยังอนุญาตให้เราทำงานกับคอนเทนเนอร์สองประเภทในเวลาเดียวกัน
อัลกอริทึม STL ช่วยเสริมปรัชญาของการนำกลับมาใช้ใหม่ ด้วยการใช้อัลกอริทึมเหล่านี้โปรแกรมเมอร์สามารถประหยัดเวลาและความพยายามได้มาก ในการเข้าถึงอัลกอริทึม STL เราต้องรวมไว้ในโปรแกรมของเรา
อัลกอริทึม STL ขึ้นอยู่กับลักษณะของการดำเนินการที่ดำเนินการอาจแบ่งได้เป็น:
อัลกอริทึมที่ไม่เปลี่ยนรูป
อัลกอริทึมการกลายพันธุ์
อัลกอริทึมการเรียงลำดับ
ตั้งค่าอัลกอริทึม
อัลกอริธึมเชิงสัมพันธ์
ไปต่อกับบทความนี้เกี่ยวกับ STL ใน C ++
ผู้ทำซ้ำ:
ตัวทำซ้ำทำหน้าที่เหมือนตัวชี้และใช้เพื่อเข้าถึงองค์ประกอบของคอนเทนเนอร์ เราใช้ตัวทำซ้ำเพื่อเลื่อนผ่านเนื้อหาของคอนเทนเนอร์ ตัวทำซ้ำได้รับการจัดการเช่นเดียวกับตัวชี้ เราสามารถเพิ่มหรือลดได้ตามความต้องการของเรา Iterators เชื่อมต่อคอนเทนเนอร์กับอัลกอริทึมและมีบทบาทสำคัญในการจัดการข้อมูลที่จัดเก็บในคอนเทนเนอร์ มักใช้ในการส่งผ่านจากองค์ประกอบหนึ่งไปยังอีกองค์ประกอบหนึ่งกระบวนการนี้เรียกว่าการวนซ้ำผ่านคอนเทนเนอร์
ตัวทำซ้ำมีห้าประเภท:
1. อินพุต
2. เอาท์พุท
3. ไปข้างหน้า
4. แบบสองทิศทาง
5. สุ่ม
Iterator | วิธีการเข้าถึง | ทิศทางการเคลื่อนไหว | ความสามารถ I / O | สังเกต |
อินพุต | เชิงเส้น | ส่งต่อเท่านั้น | อ่านเท่านั้น | ไม่สามารถบันทึกได้ |
เอาต์พุต | เชิงเส้น | ส่งต่อเท่านั้น | เขียนอย่างเดียว | ไม่สามารถบันทึกได้ |
ส่งต่อ | เชิงเส้น | ส่งต่อเท่านั้น | อ่านเขียน | สามารถบันทึกได้ |
แบบสองทิศทาง | เชิงเส้น | ไปข้างหน้าและข้างหลัง | อ่านเขียน | สามารถบันทึกได้ |
สุ่ม | สุ่ม | ไปข้างหน้าและข้างหลัง | อ่านเขียน | สามารถบันทึกได้ วิธีใช้ br ใน html |
ต้องใช้ตัวทำซ้ำประเภทต่างๆกับคอนเทนเนอร์ประเภทต่างๆดังกล่าวเท่านั้น
ลำดับและคอนเทนเนอร์ที่เชื่อมโยงได้รับอนุญาตให้เดินทางผ่านตัวทำซ้ำ ตัววนซ้ำแต่ละประเภทใช้สำหรับทำหน้าที่บางอย่าง ตัววนซ้ำอินพุตและเอาต์พุตรองรับฟังก์ชันน้อยที่สุด สามารถใช้เพื่อส่งผ่านในภาชนะเท่านั้น ตัวทำซ้ำไปข้างหน้ารองรับการทำงานทั้งหมดของตัววนซ้ำอินพุตและเอาต์พุตและยังคงตำแหน่งไว้ในคอนเทนเนอร์ ตัววนซ้ำแบบสองทิศทางในขณะที่สนับสนุนการดำเนินการตัวทำซ้ำไปข้างหน้าทั้งหมดให้ความสามารถในการเคลื่อนที่ไปในทิศทางย้อนกลับในคอนเทนเนอร์
ดังนั้นเราจึงมาถึงตอนท้ายของบทความนี้เกี่ยวกับ 'STL in C ++' หากคุณต้องการเรียนรู้เพิ่มเติมโปรดดูไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ หลักสูตรการฝึกอบรมและการรับรอง Java J2EE และ SOA ของ Edureka ได้รับการออกแบบมาเพื่อฝึกอบรมคุณสำหรับแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับกรอบงาน Java ต่างๆเช่น Hibernate & Spring
มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด