La introducció de la classe Array de C ++ 11 ha ofert una alternativa millor per a les matrius d'estil C. Els avantatges de la classe Array sobre la matriu d'estil C són:-
- Les classes de matriu coneix la seva mida pròpia, mentre que les matrius d'estil C no tenen aquesta propietat. Per tant, quan passem a les funcions, no necessitem passar la mida de la matriu com a paràmetre separat.
- Amb matriu d’estil C, hi ha més risc de la matriu es decaigui en un punter . Les classes de matriu no decauen en punters
- Les classes de matriu són generalment més eficients i fiables que les matrius d'estil C.
Operacions en matriu :-
1. At () :- Aquesta funció s'utilitza per accedir als elements de la matriu.
2. Get () :- Aquesta funció també s'utilitza per accedir als elements de la matriu. Aquesta funció no és el membre de la classe Array, sinó la funció sobrecarregada de la classe de classe.
3. Operador [] :- Això és similar a les matrius d'estil C. Aquest mètode també s’utilitza per accedir a elements de matriu.
// 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; }
Producció
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
5. Front () :- Això retorna la referència al primer element de la matriu.
5. enrere () :- Això retorna la referència a l'últim element de la matriu.
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; }
Producció
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. Mida () :- Retorna el nombre d'elements en matriu. Es tracta d’una propietat que manca les matrius d’estil C.
7. max_size () :- Retorna el nombre màxim d'elements que la matriu pot contenir, és a dir, la mida amb la qual es declara la matriu. La mida () i el max_size () retornen el mateix valor.
// 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; }
Producció
The number of array elements is : 6 Maximum elements array can hold is : 6
8. Swap () :- El swap () canvia tots els elements d'una matriu amb una altra.
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; }
Producció
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. Buits () :- Aquesta funció retorna quan la mida de la matriu és zero més que torna fals.
10. Fill () :- Aquesta funció s'utilitza per omplir tota la matriu amb un valor concret.
// 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; }
Producció
Array empty Array after filling operation is : 0 0 0 0 0 0