อาร์เรย์ เป็นโครงสร้างข้อมูลใน c++ ที่จัดเก็บองค์ประกอบข้อมูลหลายรายการของประเภทข้อมูลเดียวกันในตำแหน่งหน่วยความจำต่อเนื่อง
ในภาษาโปรแกรม c++ มีฟังก์ชัน inbuilt เพื่อจัดการประเภทอาร์เรย์ ฟังก์ชันบางอย่างยังสามารถนำไปใช้กับอาร์เรย์หลายมิติได้อีกด้วย ไฟล์ส่วนหัวอาร์เรย์มีฟังก์ชันสำหรับจัดการอาร์เรย์ในภาษาการเขียนโปรแกรม c++
วิธีการทั่วไปบางประการในการจัดการอาร์เรย์ใน c++ คือ -
is_array()
ฟังก์ชันนี้ใช้ตรวจสอบว่าตัวแปรที่ส่งผ่านไปยังฟังก์ชันนั้นเป็นประเภทอาร์เรย์หรือไม่ วิธีนี้เข้มงวดในการจดจำอาร์เรย์ที่แม้แต่ std::array ถูกปฏิเสธในการตรวจสอบ ประเภทการส่งคืนเป็นจำนวนเต็ม เช่น ส่งกลับค่าจริง(1) หากอาร์เรย์ถูกส่งเป็นเท็จ (0)
ตัวอย่าง
#include<type_traits> #include<iostream> #include<array> #include<string> using namespace std; int main(){ cout<<"Checking if int is an array ? : "; is_array<int>::value?cout<<"True":cout<<"False"; cout<<"\nChecking if int[] is an array? : "; is_array<int[6]>::value?cout<<"True":cout<<"False"; cout<<"\nChecking if 2D Array is an array? : "; is_array<int[2][3]>::value?cout<<"True":cout<<"False"; cout<<"\nChecking if String is an array? : "; is_array<string>::value?cout<<"True":cout<<"False"; cout<<"\nChecking if Character Array is an array? : "; is_array<char[4]>::value?cout<<"True":cout<<"False"; cout << endl; return 0; }
ผลลัพธ์
Checking if int is an array ? : False Checking if int[] is an array? : True Checking if 2D Array is an array? : True Checking if String is an array? : False Checking if Character Array is an array? : True
is_same()
ฟังก์ชันนี้ใช้เพื่อตรวจสอบว่าทั้งสองประเภทที่ส่งผ่านมีพิมพ์เขียวเหมือนกันทุกประการหรือไม่ เช่น ประเภทของทั้งสองควรเหมือนกัน มาดูตัวอย่างนี้กัน ซึ่งจะเคลียร์แนวคิด −
ตัวอย่าง
#include<type_traits> #include<iostream> #include<array> #include<string> using namespace std; int main(){ cout << "Checking if 1D array is same as 1D array (Different sizes) ? : " ; is_same<int[3],int[4]>::value?cout<<"True":cout<<"False"; cout << "\nChecking if 1D array is same as 1D array? (Same sizes): " ; is_same<int[5],int[5]>::value?cout<<"True":cout<<"False"; cout << "\nChecking If 2D array is same as 1D array? : "; is_same<int[3],int[3][4]>::value?cout<<"True":cout<<"False"; cout << "\nChecking if Character array is same as Integer array? : " ; is_same<int[5],char[5]>::value?cout<<"True":cout<<"False"; return 0; }
ผลลัพธ์
Checking if 1D array is same as 1D array (Different sizes) ? : False Checking if 1D array is same as 1D array? (Same sizes): True Checking If 2D array is same as 1D array? : False Checking if Character array is same as Integer array? : False
อันดับ()
ฟังก์ชัน rank ใช้เพื่อส่งคืนอันดับของอาร์เรย์ที่ส่งผ่าน อันดับ หมายถึงมิติของอาร์เรย์ ส่งคืนค่าจำนวนเต็มของลำดับของอาร์เรย์
ตัวอย่าง
#include<type_traits> #include<iostream> using namespace std; int main(){ cout<<"Print rank for the following types of arrays : \n"; cout<<"integer : "<<rank<int>::value<<endl; cout<<"1D integer array (int[]) : "<< rank<int[5]>::value<<endl; cout<<"2D integer array (int[][]) : "<<rank<int[2][2]>::value<<endl; cout<<"3D integer array (int[][][]) : "<<rank<int[2][3][4]>::value<<endl; cout<<"1D character array : "<<rank<char[10]>::value<<endl; }
ผลลัพธ์
Print rank for the following types of arrays : integer : 0 1D integer array (int[]) : 1 2D integer array (int[][]) : 2 3D integer array (int[][][]) : 3 1D character array : 1
ขอบเขต()
ขอบเขต() วิธีการใน c ++ ส่งกลับขนาดของมิติของอาร์เรย์ มีพารามิเตอร์อินพุต 2 ตัวสำหรับเมธอดนี้ อาร์เรย์ และมิติ
ตัวอย่าง
#include<type_traits> #include<iostream> using namespace std; int main(){ cout<<"Printing the length of all dimensions of the array arr[2][45][5] :\n"; cout<<"1st dimension : "<<extent<int[2][45][5],0>::value<<endl; cout<<"2nd dimension : "<<extent<int[2][45][5],1>::value<<endl; cout<<"3rd dimension : "<<extent<int[2][45][5],2>::value<<endl; cout<<"4th dimension : "<<extent<int[2][45][5],3>::value<<endl; }
ผลลัพธ์
Printing the length of all dimensions of the array arr[2][45][5] : 1st dimension : 2 2nd dimension : 45 3rd dimension : 5 4th dimension : 0
remove_extent()
ฟังก์ชัน remove_extent ใช้เพื่อลบมิติของอาร์เรย์หลายมิติ มันจะลบมิติแรกของอาร์เรย์
ตัวอย่าง
#include<type_traits> #include<iostream> using namespace std; int main(){ cout<<"Removing extent of the array arr[2][5][4] : \n"; cout<<"Initial rank : "<<rank<int[2][5][4]>::value<<endl; cout<<"The rank after removing 1 extent is : " ; cout << rank<remove_extent<int[20][10][30]>::type>::value << endl; cout << "length of 1st dimension after removal is :"; cout<<extent<remove_extent<int[20][10][30]>::type>::value << endl; }
ผลลัพธ์
Removing extent of the array arr[2][5][4] : Initial rank : 3 The rank after removing 1 extent is : 2 length of 1st dimension after removal is :10
remove_all_extents()
ฟังก์ชันนี้ใช้เพื่อลบมิติข้อมูลทั้งหมดของอาร์เรย์ในครั้งเดียว อาร์เรย์ถูกเปลี่ยนเป็นตัวแปรเหมือนกับอาร์เรย์
ตัวอย่าง
#include<type_traits> #include<iostream> using namespace std; int main(){ cout<<"Removing all extents of the array arr[2][5][4] : \n"; cout<<"Initial rank : "<<rank<int[2][5][4]>::value<<endl; cout<<"The rank after removing all extents is : " ; cout << rank<remove_all_extents<int[20][10][30]>::type>::value << endl; cout << "length of 1st dimension after removal is :"; cout<<extent<remove_all_extents<int[20][10][30]>::type>::value << endl; }
ผลลัพธ์
Removing all extents of the array arr[2][5][4] : Initial rank : 3 The rank after removing all extents is : 0 length of 1st dimension after removal is :0