قدم تقديم فئة المصفوفة من C++ 11 بديلاً أفضل للمصفوفات ذات النمط C. مزايا فئة المصفوفة على مصفوفة النمط C هي: -
- تعرف فئات المصفوفات حجمها الخاص، بينما تفتقر المصفوفات ذات النمط C إلى هذه الخاصية. لذلك عند التمرير إلى الوظائف، لا نحتاج إلى تمرير حجم المصفوفة كمعلمة منفصلة.
- مع مصفوفة النمط C هناك خطر أكبر يتم تحلل المصفوفة إلى مؤشر . لا تتحلل فئات المصفوفات إلى مؤشرات
- تعتبر فئات المصفوفات بشكل عام أكثر كفاءة وخفيفة الوزن وموثوقة من المصفوفات ذات النمط C.
العمليات على المصفوفة :-
1. في () :- تستخدم هذه الوظيفة للوصول إلى عناصر المصفوفة.
2. احصل على () :- تُستخدم هذه الوظيفة أيضًا للوصول إلى عناصر المصفوفة. هذه الوظيفة ليست عضوًا في فئة المصفوفة ولكنها وظيفة محمّلة بشكل زائد من صف الفئة.
3. المشغل[] :- هذا مشابه لمصفوفات النمط C. تُستخدم هذه الطريقة أيضًا للوصول إلى عناصر المصفوفة.
// C++ code to demonstrate working of array // at() and get() #include #include // for array at() #include // for get() using namespace std; int main() { // Initializing the array elements array<int6> ar = {1 2 3 4 5 6}; // Printing array elements using at() cout << 'The array elements are (using at()) : '; for ( int i=0; i<6; i++) cout << ar.at(i) << ' '; cout << endl; // Printing array elements using get() cout << 'The array elements are (using get()) : '; cout << get<0>(ar) << ' ' << get<1>(ar) << ' '; cout << get<2>(ar) << ' ' << get<3>(ar) << ' '; cout << get<4>(ar) << ' ' << get<5>(ar) << ' '; cout << endl; // Printing array elements using operator[] cout << 'The array elements are (using operator[]) : '; for ( int i=0; i<6; i++) cout << ar[i] << ' '; cout << endl; return 0; }
الإخراج
The array elements are (using at()) : 1 2 3 4 5 6 The array elements are (using get()) : 1 2 3 4 5 6 The array elements are (using operator[]) : 1 2 3 4 5 6
4. الجبهة () :- يؤدي هذا إلى إرجاع مرجع إلى العنصر الأول في المصفوفة.
5. العودة () :- يؤدي هذا إلى إرجاع مرجع إلى العنصر الأخير في المصفوفة.
CPP
// C++ code to demonstrate working of // front() and back() #include #include // including header file to use stl array and there function using namespace std; int main() { // Initializing the array elements array<int6> ar = {1 2 3 4 5 6}; // Printing first element of array cout << 'First element of array is : '; int &a=ar.front(); cout <<a<< endl; // Printing last element of array cout << 'Last element of array is : '; int &b=ar.back(); cout << b << endl; //change first and last element of array using these references a=10; //now 1 change to 10 b=60; //now 6 change to 60 //lets print array now cout<<'array after updating first and last element n'; for (auto x: ar) { cout<<x<<' '; } cout<<endl; return 0; }
الإخراج
First element of array is : 1 Last element of array is : 6 array after updating first and last element 10 2 3 4 5 60
6. الحجم () :- يقوم بإرجاع عدد العناصر في المصفوفة. هذه خاصية تفتقر إليها صفائف النمط C.
7.max_size() :- يقوم بإرجاع الحد الأقصى لعدد العناصر التي يمكن أن تحتويها المصفوفة، أي الحجم الذي تم إعلان المصفوفة به. يُرجع الحجم () وmax_size () نفس القيمة.
// C++ code to demonstrate working of // size() and max_size() #include #include // for size() and max_size() using namespace std; int main() { // Initializing the array elements array<int6> ar = {1 2 3 4 5 6}; // Printing number of array elements cout << 'The number of array elements is : '; cout << ar.size() << endl; // Printing maximum elements array can hold cout << 'Maximum elements array can hold is : '; cout << ar.max_size() << endl; return 0; }
الإخراج
The number of array elements is : 6 Maximum elements array can hold is : 6
8. مبادلة () :- يقوم المبادلة () بتبديل جميع عناصر مصفوفة واحدة مع أخرى.
CPP// C++ code to demonstrate working of swap() #include #include // for swap() and array using namespace std; int main() { // Initializing 1st array array<int6> ar = {1 2 3 4 5 6}; // Initializing 2nd array array<int6> ar1 = {7 8 9 10 11 12}; // Printing 1st and 2nd array before swapping cout << 'The first array elements before swapping are : '; for (int i=0; i<6; i++) cout << ar[i] << ' '; cout << endl; cout << 'The second array elements before swapping are : '; for (int i=0; i<6; i++) cout << ar1[i] << ' '; cout << endl; // Swapping ar1 values with ar ar.swap(ar1); // Printing 1st and 2nd array after swapping cout << 'The first array elements after swapping are : '; for (int i=0; i<6; i++) cout << ar[i] << ' '; cout << endl; cout << 'The second array elements after swapping are : '; for (int i=0; i<6; i++) cout << ar1[i] << ' '; cout << endl; return 0; }
الإخراج
The first array elements before swapping are : 1 2 3 4 5 6 The second array elements before swapping are : 7 8 9 10 11 12 The first array elements after swapping are : 7 8 9 10 11 12 The second array elements after swapping are : 1 2 3 4 5 6
9. فارغة () :- هذه الدالة ترجع صحيحاً عندما يكون حجم المصفوفة صفراً وإلا ترجع خطأ.
10. املأ () :- تستخدم هذه الوظيفة لملء المصفوفة بأكملها بقيمة معينة.
// C++ code to demonstrate working of empty() // and fill() #include #include // for fill() and empty() using namespace std; int main() { // Declaring 1st array array<int6> ar; // Declaring 2nd array array<int0> ar1; // Checking size of array if it is empty ar1.empty()? cout << 'Array empty': cout << 'Array not empty'; cout << endl; // Filling array with 0 ar.fill(0); // Displaying array after filling cout << 'Array after filling operation is : '; for ( int i=0; i<6; i++) cout << ar[i] << ' '; return 0; }
الإخراج
Array empty Array after filling operation is : 0 0 0 0 0 0