logo

STD::array în C++

Matricea este o colecție de obiecte omogene și acest container de matrice este definit pentru matrice de dimensiune constantă sau (dimensiune statică). Acest container se înfășoară în jurul matricelor de dimensiuni fixe și informațiile despre dimensiunea sa nu se pierd atunci când sunt declarate la un pointer.
Pentru a utiliza matrice, trebuie să includem antetul matricei:

 #include>

Să vedem un exemplu.



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>sau1{{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;> }>



>

>

Ieșire:

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>

Această matrice C++ STL este un fel de container secvențial și nu este folosită extrem de în programarea obișnuită sau în programarea competitivă, dar uneori funcția sa de membru îi oferă un avantaj superior față de matricea normală obișnuită pe care o folosim în viața noastră de zi cu zi. Deci, discutăm câteva dintre funcțiile membre importante care sunt utilizate cu un astfel de tip de matrice:

Funcțiile membru pentru șablonul de matrice sunt după cum urmează:

Sintaxă: array nume_arr;

a) [ ] Operator : Aceasta este similară cu matricea normală, o folosim pentru a accesa magazinul de elemente de la indexul „i”.

Ex:

C++




comanda în nodul js

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

>

>

Ieșire

G G>

b) funcția față ( ) și spate ( ): Aceste metode sunt folosite pentru a accesa direct primul și ultimul element al matricei.

C++




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

>

>

Ieșire

71 71>

c) funcția swap( ): Această funcție de schimb este utilizată pentru a schimba conținutul celor două matrice.

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; }>

>

>

Ieșire

77 80>

d) funcția goală ( ): Această funcție este folosită pentru a verifica dacă matricea STL declarată este goală sau nu, dacă este goală, returnează true, altfel 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; }>

>

>

Ieșire

false>

e) funcția at( ): Această funcție este folosită pentru a accesa elementul stocat într-o anumită locație, dacă încercăm să accesăm elementul care este în afara limitelor dimensiunii matricei, atunci se aruncă o excepție.

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;> }>

>

>

Ieșire

71 80>

f) funcția de umplere ( ): Acesta este folosit special pentru a inițializa sau a umple toți indecșii matricei cu o valoare similară.

Ex:

C++


este kat timpf avocat



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

>

>

Ieșire

1 1 1 1 1>

g) dimensiunea( ) sau max_size( ) și funcția sizeof( ): Atât size( ) cât și max_size( ) sunt folosite pentru a obține numărul maxim de indici din matrice, în timp ce sizeof( ) este folosit pentru a obține dimensiunea totală a matricei în octeți.

C++




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

>

>

Ieșire

10 10 40>

h) date( ): Această funcție returnează indicatorul la primul element al obiectului matrice. Deoarece elementele din matrice sunt stocate în locații de memorie adiacente. Această funcție data( ) ne returnează adresa de bază a obiectului de tip șir/car.

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;> }>

>

>


Ieșire

techcodeview.com>

I) cbegin() și cend(): accesați acest link gfg: Click_ma