STL ใน c ++: ทุกสิ่งที่คุณต้องรู้



บทความนี้จะให้ความรู้โดยละเอียดและครอบคลุมเกี่ยวกับ STL ใน C ++ และจะให้แนวคิดเกี่ยวกับคอนเทนเนอร์ต่างๆด้วย

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 เชื่อมต่ออัลกอริทึมกับคอนเทนเนอร์และมีบทบาทสำคัญในการจัดการข้อมูลที่จัดเก็บในคอนเทนเนอร์

Container-STL-in-C++

ไปต่อกับบทความนี้เกี่ยวกับ STL ใน C ++

ตู้คอนเทนเนอร์

STL กำหนดตู้คอนเทนเนอร์สิบตู้ซึ่งแบ่งออกเป็นสามประเภท

ตู้คอนเทนเนอร์

คำอธิบาย

ไฟล์ส่วนหัว

Iterator

เวกเตอร์

สามารถกำหนดเป็นอาร์เรย์แบบไดนามิก อนุญาตให้เข้าถึงองค์ประกอบใด ๆ โดยตรง

การเข้าถึงแบบสุ่ม

รายการ

มันเป็นรายการเชิงเส้นสองทิศทาง ช่วยให้สามารถแทรกและลบได้ทุกที่

แบบสองทิศทาง

และ

มันเป็นคิวสองปลาย อนุญาตให้แทรกและลบทั้งสองด้าน อนุญาตให้เข้าถึงองค์ประกอบใด ๆ โดยตรง

การเข้าถึงแบบสุ่ม

ชุด

เป็นภาชนะสำหรับจัดเก็บชุดเฉพาะ ช่วยให้ค้นหาอย่างรวดเร็ว

แบบสองทิศทาง

หลายชุด

เป็นคอนเทนเนอร์เชื่อมโยงสำหรับจัดเก็บชุดที่ไม่ซ้ำกัน

แบบสองทิศทาง

แผนที่

เป็นคอนเทนเนอร์เชื่อมโยงสำหรับจัดเก็บคู่คีย์ / ค่าที่ไม่ซ้ำกัน แต่ละคีย์เชื่อมโยงกับค่าเดียวเท่านั้น

แบบสองทิศทาง

มัลติแมป

เป็นคอนเทนเนอร์เชื่อมโยงสำหรับจัดเก็บคีย์ / ค่าซึ่งคีย์หนึ่งอาจเชื่อมโยงกับค่ามากกว่าหนึ่งค่า (การแมปแบบหนึ่งต่อหลายค่า) ช่วยให้สามารถค้นหาตามคีย์

แบบสองทิศทาง

ซ้อนกัน

อัลกอริทึมจัดเรียง c ++

สแต็กมาตรฐานเป็นไปตาม last-in-first-out (LIFO)

ไม่มีตัวทำซ้ำ

คิว

คิวมาตรฐานตามก่อนเข้าก่อนออก (FIFO)

ไม่มีตัวทำซ้ำ

ลำดับความสำคัญคิว

องค์ประกอบแรกออกเป็นองค์ประกอบที่มีลำดับความสำคัญสูงสุดเสมอ

ไม่มีตัวทำซ้ำ

ลำดับคอนเทนเนอร์

คอนเทนเนอร์ลำดับจะจัดเก็บองค์ประกอบตามลำดับเชิงเส้น องค์ประกอบทั้งหมดมีความสัมพันธ์ซึ่งกันและกันตามตำแหน่งตามเส้น อนุญาตให้มีการแทรกองค์ประกอบและทั้งหมดนี้สนับสนุนการดำเนินการหลายอย่าง

STL มีองค์ประกอบลำดับสามประเภท:

  • เวกเตอร์
  • รายการ
  • และ

ภาชนะที่เกี่ยวข้อง:

ได้รับการออกแบบในลักษณะที่รองรับการเข้าถึงองค์ประกอบโดยตรงโดยใช้คีย์ พวกเขาไม่ได้เรียงตามลำดับ มีสี่ประเภท

คอนเทนเนอร์ที่เชื่อมโยง:

  1. ชุด
  2. หลายชุด
  3. แผนที่
  4. 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

มีคำถามสำหรับเรา? โปรดระบุไว้ในส่วนความคิดเห็นของบล็อกนี้และเราจะติดต่อกลับโดยเร็วที่สุด