โครงสร้างข้อมูลประเภทหนึ่งที่เป็นศูนย์รวมโดยตรงของเอนทิตีทางคณิตศาสตร์ในวิทยาการคอมพิวเตอร์คือชุด การดำเนินการกับพวกเขามักจะรองรับอัลกอริธึมต่างๆ ภาษาโปรแกรมต่างๆ มีวิธีอธิบายชุดของตนเอง
จำเป็น
- - การพัฒนาสภาพแวดล้อม;
- - นักแปลจากภาษาโปรแกรมที่เลือก
คำแนะนำ
ขั้นตอนที่ 1
อธิบายชุดโดยใช้ภาษาการเขียนโปรแกรม หากมี ตัวอย่างเช่น ในภาษาปาสกาล มีชุดโครงสร้างที่ให้คุณประกาศประเภทที่เกี่ยวข้อง จริง ปริมาณของชุดดังกล่าวไม่ควรเกิน 256 องค์ประกอบ ตัวอย่างของการประกาศประเภทชุดอาจมีลักษณะดังนี้:
พิมพ์
AZLetters = ชุดของ 'A'.. 'Z';
AllLetters = ชุดถ่าน;
ตัวแปรและค่าคงที่ของประเภทที่เป็นชุดถูกประกาศในลักษณะปกติ ในกรณีนี้ สามารถใช้ set literals ในการเริ่มต้นได้ ตัวอย่างเช่น:
const
LettersSet1: AZLetters = ['A', 'B', 'C'];
ขั้นตอนที่ 2
ใช้ความสามารถของไลบรารีหรือโมดูลมาตรฐานเพื่ออธิบายชุด ดังนั้น ไลบรารีเทมเพลต C ++ ซึ่งควรมาพร้อมกับคอมไพเลอร์ รวมเทมเพลตสำหรับคลาสคอนเทนเนอร์ชุดที่ใช้ฟังก์ชันการทำงานของชุด:
แม่แบบ <
คีย์คลาส, ลักษณะคลาส = น้อย, ตัวจัดสรรคลาส = ตัวจัดสรร
ชุดคลาส
ดังที่คุณเห็นจากรายการ อาร์กิวเมนต์ของเทมเพลตชุดคือ ชนิดข้อมูลขององค์ประกอบของชุด ประเภทของออบเจ็กต์ที่ทำงานเพื่อกำหนดลำดับขององค์ประกอบในชุด และประเภทของตัวจัดสรรหน่วยความจำ. ในกรณีนี้ จำเป็นต้องใช้อาร์กิวเมนต์แรกเท่านั้น (เนื่องจากอีกสองอาร์กิวเมนต์ ไบนารีมาตรฐานน้อยกว่าและตัวจัดสรรมาตรฐานจะถูกใช้โดยค่าเริ่มต้น)
ขั้นตอนที่ 3
ใช้คลาสหรือเทมเพลตคลาสที่ใช้ในการพัฒนาเฟรมเวิร์กที่ใช้ฟังก์ชันการทำงานกับชุด หากมี ตัวอย่างของเครื่องมือดังกล่าวคือคลาสเทมเพลต QSet ของโมดูล QtCore ของไลบรารี Qt ความสามารถของมันคล้ายกับคอนเทนเนอร์ชุด STL ที่อธิบายไว้ในขั้นตอนก่อนหน้า
ขั้นตอนที่ 4
อธิบายชุดโดยใช้วิธีการดำเนินการของคุณเอง ใช้บิตแฟล็กที่จัดเก็บไว้ในอาร์เรย์ที่มีความยาวคงที่ สำหรับชุดของอิลิเมนต์ประเภทธรรมดาและขนาดเล็ก ใช้คลาสคอนเทนเนอร์ที่กำหนดสำหรับชนิดข้อมูลที่ซับซ้อน โดยพื้นฐานแล้ว คุณสามารถใช้ฟังก์ชันของอาร์เรย์ที่เชื่อมโยงหรือแฮชชิงได้ ในทางกลับกัน มันสามารถสร้างขึ้นได้บนพื้นฐานของการค้นหาแบบไบนารีที่สมดุลในตัวเอง (เช่น ต้นไม้สีแดง-ดำ)