std::array ใน C ++ คืออะไร

Std Array Ni C Khux Xari



C++ มีโครงสร้างข้อมูลที่หลากหลายเพื่อจัดเก็บและจัดการคอลเลกชันขององค์ประกอบต่างๆ โครงสร้างข้อมูลอย่างหนึ่งคือ std::อาร์เรย์ ซึ่งเปิดตัวในไลบรารีมาตรฐาน C++11 ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับ std::array, ไวยากรณ์, ตัวอย่าง และข้อดีของมันใน C++

std::array ใน C++ คืออะไร

ใน C++ คอนเทนเนอร์ที่เรียกว่า std::อาร์เรย์ ใช้เพื่อเก็บรายการประเภทข้อมูลเดียวกันในจำนวนคงที่ เดอะ std::อาร์เรย์ คอนเทนเนอร์เป็นอีกทางเลือกหนึ่งสำหรับอาร์เรย์แบบ C เนื่องจากปลอดภัยกว่า ใช้งานง่ายกว่า และมีประสิทธิภาพดีกว่า

คลาสซึ่งเป็นส่วนประกอบของไลบรารีมาตรฐานของ C++ นำเสนอแนวทางปฏิบัติและมีประสิทธิภาพในการจัดเก็บและเข้าถึงองค์ประกอบด้วยข้อมูลประเภทเดียวกัน เพราะขนาด std::อาร์เรย์ เป็นที่รู้จักในเวลาคอมไพล์ โอเวอร์เฮดรันไทม์ของการปรับขนาดไดนามิกจะลดลง ขนาดของอาร์เรย์กำหนดโดยพารามิเตอร์เทมเพลต และรายการของ std::อาร์เรย์ ถูกเก็บไว้ในความทรงจำที่ต่อเนื่องกัน







ประกาศ std::array ใน C++

คุณสามารถประกาศ std::อาร์เรย์ ชอบ:



มาตรฐาน :: อาร์เรย์ < นานาชาติ , 4 > อร๊ายยย ;

ไวยากรณ์ข้างต้นประกาศอาร์เรย์ชื่อ อร๊ายยย ด้วยขนาดคงที่ 4 องค์ประกอบ โดยแต่ละองค์ประกอบเป็นประเภท int



ตัวอย่างของ std::array

ตัวอย่างที่ 1: ต่อไปนี้เป็นตัวอย่างง่ายๆ ในการเริ่มต้น a std::อาร์เรย์ ใน C ++:





#include <อาร์เรย์>

#รวมถึง

นานาชาติ หลัก ( ) {

มาตรฐาน :: อาร์เรย์ < นานาชาติ , 4 > อร๊ายยย = { 4 , 6 , 2 , 1 } ;

สำหรับ ( นานาชาติ ฉัน = 0 ; ฉัน < อร๊าย ขนาด ( ) ; ฉัน ++ ) {

มาตรฐาน :: ศาล << อร๊ายยย [ ฉัน ] << ' ' ;

}

มาตรฐาน :: ศาล << มาตรฐาน :: จบ ;

กลับ 0 ;

}

เอาต์พุต



ตัวอย่างที่ 2: คุณยังสามารถใช้ std::อาร์เรย์ เพื่อเข้าถึงองค์ประกอบในอาร์เรย์ รหัสได้รับด้านล่าง:

#include <อาร์เรย์>

#รวมถึง

นานาชาติ หลัก ( ) {

มาตรฐาน :: อาร์เรย์ < นานาชาติ , 3 > อร๊ายยย = { 1 , 2 , 3 } ;

มาตรฐาน :: ศาล << 'องค์ประกอบแรกคือ' << อร๊ายยย [ 0 ] << มาตรฐาน :: จบ ;

มาตรฐาน :: ศาล << 'องค์ประกอบที่สองคือ' << อร๊าย ที่ ( 1 ) << มาตรฐาน :: จบ ;

มาตรฐาน :: ศาล << 'องค์ประกอบที่สามคือ' << อร๊าย กลับ ( ) << มาตรฐาน :: จบ ;

กลับ 0 ;

}

เอาต์พุต

ตัวอย่างที่ 3: ตัวอย่างต่อไปนี้แสดงการพิมพ์องค์ประกอบจากอาร์เรย์ที่ตำแหน่งเฉพาะโดยใช้ std::อาร์เรย์ ใน C++

#รวมถึง

#include <อาร์เรย์>

นานาชาติ หลัก ( )

{

มาตรฐาน :: อาร์เรย์ < นานาชาติ , 4 > อร๊ายยย = { 4 , 6 , 2 , 1 } ;

มาตรฐาน :: ศาล << อร๊ายยย [ 3 ] << มาตรฐาน :: จบ ;

กลับ 0 ;

}

เอาต์พุต

ข้อดีของ std::array ใน C++

ไม่เหมือนกับอาร์เรย์ดั้งเดิมใน C++ std::อาร์เรย์ เสนอคุณสมบัติที่หลากหลาย

1: ไวยากรณ์ที่ใช้งานง่าย

std::อาร์เรย์ มีไวยากรณ์ที่ง่ายกว่าสำหรับการเริ่มต้นและสามารถเริ่มต้นได้โดยใช้รายการ initializer นี่เป็นวิธีการเริ่มต้นอาร์เรย์ที่กระชับและอ่านง่ายขึ้น

2: ส่งผ่านเป็นอาร์กิวเมนต์

std::อาร์เรย์ สามารถส่งผ่านเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน และเป็นไปได้ที่จะส่งกลับจากฟังก์ชันเช่นกัน

3: การจัดการหน่วยความจำ

หนึ่งในประโยชน์หลักของการใช้ std::อาร์เรย์ คือให้การจัดการหน่วยความจำที่ง่ายและมีประสิทธิภาพ ซึ่งหมายความว่าไม่จำเป็นต้องมีการจัดสรรหน่วยความจำด้วยตนเองหรือการจัดสรรคืน

4: การตรวจสอบขอบเขตอัตโนมัติ

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

5: ให้ฟังก์ชันที่เป็นประโยชน์

std::อาร์เรย์ มีฟังก์ชันที่มีประโยชน์มากมาย เช่น iterators, size(), front(), back(), fill() และ at() ซึ่งเป็นข้อดีอีกประการหนึ่ง ฟังก์ชันเหล่านี้ช่วยให้จัดการองค์ประกอบอาร์เรย์ได้ง่ายขึ้นโดยไม่ต้องใช้โค้ดที่ซับซ้อนและเกิดข้อผิดพลาดได้ง่าย ตัวอย่างเช่น Iterators ทำให้ง่ายต่อการนำทางระหว่างองค์ประกอบต่างๆ ของอาร์เรย์ และเมธอด fill() ช่วยให้คุณระบุค่าเดียวให้กับชุดองค์ประกอบทั้งหมดของอาร์เรย์

บทสรุป

ใน C++, std::อาร์เรย์ class นำเสนอวิธีปฏิบัติในการทำงานกับอาร์เรย์ขนาดคงที่ พร้อมด้วยฟังก์ชันที่มีประโยชน์และข้อดีของความปลอดภัยประเภทและช่วง สำหรับการกำหนดค่าเริ่มต้นและการตรวจสอบขอบเขต โปรแกรมนี้มีไวยากรณ์ที่ชัดเจนและเข้าใจได้มากขึ้น ซึ่งสามารถช่วยหลีกเลี่ยงข้อผิดพลาดในการเขียนโปรแกรมโดยทั่วไปได้ สำหรับสถานการณ์ส่วนใหญ่ที่ต้องใช้อาร์เรย์ขนาดคงที่ ขอแนะนำให้ใช้ std::array เนื่องจากมีวิธีการจัดการที่ทันสมัยและปลอดภัยกว่า