วิธีสร้างไดนามิกอาร์เรย์

สารบัญ:

วิธีสร้างไดนามิกอาร์เรย์
วิธีสร้างไดนามิกอาร์เรย์

วีดีโอ: วิธีสร้างไดนามิกอาร์เรย์

วีดีโอ: วิธีสร้างไดนามิกอาร์เรย์
วีดีโอ: AutoCAD Dynamic Blocks - Array Action 2024, พฤศจิกายน
Anonim

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

วิธีสร้างไดนามิกอาร์เรย์
วิธีสร้างไดนามิกอาร์เรย์

คำแนะนำ

ขั้นตอนที่ 1

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

ขั้นตอนที่ 2

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

ขั้นตอนที่ 3

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

ขั้นตอนที่ 4

รวมไลบรารีอาร์เรย์แบบไดนามิกโดยใช้คำสั่ง #include ใช้คลาสเวกเตอร์เพื่อสร้างวัตถุ การย้ายผ่านอาร์เรย์จะเหมือนกับในกรณีปกติโดยใช้ดัชนี คุณสมบัติพิเศษที่นี่คือฟังก์ชันสำหรับการเพิ่มและลบองค์ประกอบใหม่รวมถึงวิธีการเสริมต่าง ๆ ตัวอย่างของรหัสสำหรับการสร้างและใช้งานเวกเตอร์อาร์เรย์แบบไดนามิก: #include vector; vector int Mass; // ประกาศอาร์เรย์แบบไดนามิกที่มีองค์ประกอบประเภท intMas.push_back (10); // เพิ่มองค์ประกอบแรก - หมายเลข 10 Mas.push_back (15); // เพิ่มองค์ประกอบที่สอง - หมายเลข 15Mas [1] = 30; // องค์ประกอบที่สองเขียนหมายเลข 30Mas.pop_back (); // การลบองค์ประกอบสุดท้ายของอาร์เรย์ที่นี่ เมื่อสร้างอาร์เรย์แบบไดนามิกชื่อ Mass ต้องระบุประเภทขององค์ประกอบ (int) ในกรณีนี้ไม่ได้ระบุมิติข้อมูล