อะไรคือความแตกต่างระหว่างอาร์เรย์และเวกเตอร์ใน C ++? ตัวอย่างของความแตกต่างอาจรวมถึงไลบรารีสัญลักษณ์ความสามารถ ฯลฯ
อาร์เรย์
อาร์เรย์ประกอบด้วยองค์ประกอบจำนวนเฉพาะของประเภทหนึ่ง ๆ เพื่อให้คอมไพลเลอร์สามารถสงวนพื้นที่ตามที่ต้องการเมื่อคอมไพล์โปรแกรมคุณต้องระบุประเภทและจำนวนองค์ประกอบที่อาร์เรย์จะมีเมื่อมีการกำหนด คอมไพเลอร์ต้องสามารถกำหนดค่านี้ได้เมื่อโปรแกรมถูกคอมไพล์ เมื่อกำหนดอาร์เรย์แล้วคุณจะใช้ตัวระบุสำหรับอาร์เรย์พร้อมกับดัชนีเพื่อเข้าถึงองค์ประกอบเฉพาะของอาร์เรย์ [... ] อาร์เรย์เป็นศูนย์ดัชนี นั่นคือองค์ประกอบแรกอยู่ที่ดัชนี 0 รูปแบบการจัดทำดัชนีนี้บ่งบอกถึงความสัมพันธ์ที่ใกล้ชิดใน C ++ ระหว่างพอยน์เตอร์และอาร์เรย์และกฎที่ภาษากำหนดสำหรับการคำนวณทางคณิตศาสตร์ของตัวชี้
- การอ้างอิงกระเป๋า C ++
เวกเตอร์
เวกเตอร์คือลำดับขนาดแบบไดนามิกของวัตถุที่ให้
operator[]
การเข้าถึงแบบสุ่มสไตล์อาร์เรย์ ฟังก์ชันสมาชิกpush_back
คัดลอกอาร์กิวเมนต์ผ่านตัวสร้างการคัดลอกเพิ่มสำเนานั้นเป็นรายการสุดท้ายในเวกเตอร์และเพิ่มขนาดทีละรายการpop_back
ตรงข้ามกันโดยเอาองค์ประกอบสุดท้ายออก การแทรกหรือลบรายการจากจุดสิ้นสุดของเวกเตอร์จะใช้เวลาคงที่ในการตัดจำหน่ายและการแทรกหรือลบจากตำแหน่งอื่นต้องใช้เวลาเชิงเส้น นี่คือพื้นฐานของเวกเตอร์ ยังมีอีกมากสำหรับพวกเขา ในกรณีส่วนใหญ่เวกเตอร์ควรเป็นตัวเลือกแรกของคุณในอาร์เรย์สไตล์ C ก่อนอื่นพวกมันมีขนาดแบบไดนามิกซึ่งหมายความว่าพวกมันสามารถเติบโตได้ตามต้องการ คุณไม่จำเป็นต้องทำการวิจัยทุกประเภทเพื่อหาขนาดคงที่ที่เหมาะสมเช่นในกรณีของอาร์เรย์ C เวกเตอร์จะเติบโตขึ้นตามต้องการและสามารถปรับขนาดให้ใหญ่ขึ้นหรือเล็กลงได้ด้วยตนเองหากคุณต้องการ ประการที่สองเวกเตอร์เสนอการตรวจสอบขอบเขตด้วยat
ฟังก์ชันสมาชิก (แต่ไม่ใช่ด้วยoperator[]
) เพื่อให้คุณสามารถทำบางสิ่งบางอย่างได้หากคุณอ้างอิงดัชนีที่ไม่มีอยู่แทนที่จะเฝ้าดูโปรแกรมของคุณขัดข้องหรือแย่กว่านั้นคือการดำเนินการอย่างต่อเนื่องด้วยข้อมูลที่เสียหาย- ตำรา C ++