logo

STD::array in C++

De array is een verzameling homogene objecten en deze arraycontainer is gedefinieerd voor arrays met constante grootte of (statische grootte). Deze container wikkelt zich rond arrays met een vaste grootte en de informatie over de grootte ervan gaat niet verloren wanneer deze naar een pointer wordt gedeclareerd.
Om arrays te kunnen gebruiken, moeten we de array-header opnemen:

 #include>

Laten we een voorbeeld bekijken.

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

>

>

Uitgang:

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>

Deze C++ STL-array is een soort sequentiële container en wordt niet extreem gebruikt bij regulier programmeren of bij competitief programmeren, maar soms biedt de lidfunctie ervan een voorsprong op de reguliere normale array die we in ons dagelijks leven gebruiken. We bespreken dus enkele van de belangrijke ledenfuncties die bij een dergelijke array worden gebruikt:

De lidfuncties voor de matrixsjabloon zijn als volgt:

Syntaxis: array arr_naam;

a) [ ] Operator : Dit is vergelijkbaar met de normale array, we gebruiken het om toegang te krijgen tot de elementopslag op index 'i'.

Ex:

C++




Java-architectuur

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

>

>

Uitvoer

G G>

b) front( ) en back( ) functie: Deze methoden worden gebruikt om rechtstreeks toegang te krijgen tot het eerste en het laatste element van de array.

C++




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

>

>

Uitvoer

71 71>

c) swap( ) functie: Deze wisselfunctie wordt gebruikt om de inhoud van de twee arrays om te wisselen.

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

>

>

Uitvoer

77 80>

d) lege() functie: Deze functie wordt gebruikt om te controleren of de gedeclareerde STL-array leeg is of niet. Als deze leeg is, retourneert deze true else 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; }>

>

>

Uitvoer

false>

e) at( ) functie: Deze functie wordt gebruikt om toegang te krijgen tot het element dat op een specifieke locatie is opgeslagen. Als we proberen toegang te krijgen tot het element dat buiten de grenzen van de arraygrootte valt, genereert het een uitzondering.

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

>

>

Uitvoer

71 80>

f) functie fill(): Dit wordt speciaal gebruikt om alle indexen van de array met een vergelijkbare waarde te initialiseren of te vullen.

Ex:

C++


verschil tussen liefde en like



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

>

>

Uitvoer

1 1 1 1 1>

g) size( ) of max_size( ) en sizeof( ) functie: Zowel size() als max_size() worden gebruikt om het maximale aantal indexen in de array te verkrijgen, terwijl sizeof() wordt gebruikt om de totale grootte van de array in bytes te verkrijgen.

C++




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

>

>

Uitvoer

10 10 40>

h) gegevens( ): Deze functie retourneert de aanwijzer naar het eerste element van het arrayobject. Omdat elementen in de array worden opgeslagen op aangrenzende geheugenlocaties. Deze data() functie retourneert ons het basisadres van het string/char type object.

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

>

>


Uitvoer

techcodeview.com>

I) cbegin() en cend(): ga naar deze gfg-link: Klik hier