logo

STD::array en C++

La matriu és una col·lecció d'objectes homogenis i aquest contenidor de matriu es defineix per a matrius de mida constant o (mida estàtica). Aquest contenidor envolta matrius de mida fixa i la informació de la seva mida no es perd quan es declara a un punter.
Per utilitzar matrius, hem d'incloure la capçalera de la matriu:

 #include>

Vegem un exemple.



CPP






// CPP program to demonstrate working of array> #include> #include> #include> #include> #include> using> namespace> std;> int> main() {> >// construction uses aggregate initialization> >// double-braces required> >array<>int>, 5>o 1{{3, 4, 5, 1, 2}};> >array<>int>, 5>ar2 = {1, 2, 3, 4, 5};> >array ar3 = {{string(>'a'>),>'b'>}};> >cout <<>'Sizes of arrays are'> << endl;> >cout << ar1.size() << endl;> >cout << ar2.size() << endl;> >cout << ar3.size() << endl;> > >cout <<>' Initial ar1 : '>;> >for> (>auto> i : ar1)> >cout << i <<>' '>;> >// container operations are supported> >sort(ar1.begin(), ar1.end());> >cout <<>' sorted ar1 : '>;> >for> (>auto> i : ar1)> >cout << i <<>' '>;> >// Filling ar2 with 10> >ar2.fill(10);> >cout <<>' Filled ar2 : '>;> >for> (>auto> i : ar2)> >cout << i <<>' '>;> >// ranged for loop is supported> >cout <<>' ar3 : '>;> >for> (>auto> &s : ar3)> >cout << s <<>' '>;> >return> 0;> }>



>

>

Sortida:

Sizes of arrays are 5 5 2 Initial ar1 : 3 4 5 1 2 sorted ar1 : 1 2 3 4 5 Filled ar2 : 10 10 10 10 10 ar3 : a b>

Aquesta matriu C++ STL és una mena de contenidor seqüencial i no s'utilitza extremadament en la programació normal o en la programació competitiva, però de vegades la seva funció membre li proporciona un avantatge superior a la matriu normal normal que utilitzem a la nostra vida diària. Per tant, estem discutint algunes de les funcions de membre importants que s'utilitzen amb aquest tipus de matriu:

Les funcions dels membres per a la plantilla de matriu són les següents:

Sintaxi: array nom_arr;

a) [ ] Operador : Això és similar a la matriu normal, l'utilitzem per accedir al magatzem d'elements a l'índex 'i'.

Ex:

C++




llista de tipus de lletra a gimp

#include> #include> using> namespace> std;> int> main() {> >array <>char> , 3>arr={>'G'>,>'f'>,>'G'>};> >cout< ' '< return 0; }>

>

>

Sortida

G G>

b) Funció davant ( ) i darrere ( ): Aquests mètodes s'utilitzen per accedir directament al primer i a l'últim element de la matriu.

C++




#include> #include> using> namespace> std;> int> main() {> >array <>int> , 3>arr={>'G'>,>'f'>,>'G'>};>// ASCII val of 'G' =71> >cout< ' '< return 0; }>

>

>

Sortida

71 71>

c) funció swap( ): Aquesta funció d'intercanvi s'utilitza per intercanviar el contingut de les dues matrius.

Ex:

C++




#include> #include> using> namespace> std;> int> main() {> >array <>int> , 3>arr={>'G'>,>'f'>,>'G'>};>// ASCII val of 'G' =71> >array <>int> , 3>arr1={>'M'>,>'M'>,>'P'>};>// ASCII val of 'M' = 77 and 'P' = 80> >arr.swap(arr1);>// now arr = {M,M,P}> >cout< ' '< return 0; }>

>

>

Sortida

77 80>

d) funció buida ( ): Aquesta funció s'utilitza per comprovar si la matriu STL declarada està buida o no, si està buida, retorna true o false.

Ex:

C++




#include> #include> using> namespace> std;> int> main() {> >array <>int> , 3>arr={>'G'>,>'f'>,>'G'>};>// ASCII val of 'G' =71> >array <>int> , 3>arr1={>'M'>,>'M'>,>'P'>};>// ASCII val of 'M' = 77 and 'P' = 80> >bool> x = arr.empty();>// false ( not empty)> >cout< return 0; }>

>

>

Sortida

false>

e) funció at( ): Aquesta funció s'utilitza per accedir a l'element emmagatzemat en una ubicació específica, si intentem accedir a l'element que està fora dels límits de la mida de la matriu, llavors llança una excepció.

Ex:

C++




#include> #include> using> namespace> std;> int> main() {> >array <>int> , 3>arr={>'G'>,>'f'>,>'G'>};>// ASCII val of 'G' =71> >array <>int> , 3>arr1={>'M'>,>'M'>,>'P'>};>// ASCII val of 'M' = 77 and 'P' = 80> >cout<< arr.at(2) <<>' '> << arr1.at(2);> >//cout<< arr.at(3); // exception{Abort signal from abort(3) (SIGABRT)}> >return> 0;> }>

>

>

Sortida

71 80>

f) funció omplir ( ): Això s'utilitza especialment per inicialitzar o omplir tots els índexs de la matriu amb un valor similar.

Ex:

C++


binari a bcd



#include> #include> using> namespace> std;> int> main() {> >array <>int> , 5>arr;> >arr.fill(1);> >for>(>int> i: arr)> >cout< ' '; return 0; }>

>

>

Sortida

1 1 1 1 1>

g) funció size( ) o max_size() i sizeof(): Tant size() com max_size() s'utilitzen per obtenir el nombre màxim d'índexs de la matriu mentre que sizeof() s'utilitza per obtenir la mida total de la matriu en bytes.

C++




#include> #include> using> namespace> std;> int> main() {> >array <>int> , 10>arr;>>> cout< ' '; // total num of indexes cout< ' '; // total num of indexes cout<

>

>

Sortida

10 10 40>

h) dades(): Aquesta funció retorna el punter al primer element de l'objecte matriu. Com que els elements de la matriu s'emmagatzemen en ubicacions de memòria contigües. Aquesta funció data( ) ens retorna l'adreça base de l'objecte de tipus string/char.

Ex:

C++




#include> #include> #include> using> namespace> std;> int> main ()> {> >const> char>* str =>'techcodeview.com'>;> >array<>char>,13>arr;> >memcpy> (arr.data(),str,13);> >cout << arr.data() <<>' '>;> >return> 0;> }>

>

>


Sortida

techcodeview.com>

I) cbegin() i cend(): aneu a aquest enllaç gfg: Fes clic_me