logo

STD::array v C++

Pole je kolekcia homogénnych objektov a tento kontajner poľa je definovaný pre polia konštantnej veľkosti alebo (statická veľkosť). Tento kontajner sa obalí okolo polí s pevnou veľkosťou a informácie o jeho veľkosti sa pri deklarácii do ukazovateľa nestratia.
Aby sme mohli využívať polia, musíme zahrnúť hlavičku poľa:

 #include>

Pozrime sa na príklad.

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

>

>

Výkon:

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>

Toto pole C++ STL je druh sekvenčného kontajnera a nepoužíva sa extrémne v bežnom programovaní alebo v konkurenčnom programovaní, ale niekedy mu jeho členská funkcia poskytuje hornú hranicu oproti bežnému normálnemu poľu, ktoré používame v našom každodennom živote. Takže diskutujeme o niektorých dôležitých členských funkciách, ktoré sa používajú s takýmto druhom poľa:

Členské funkcie pre šablónu poľa sú nasledovné:

Syntax: pole názov_pola;

a) [ ] Prevádzkovateľ : Toto je podobné normálnemu poľu, používame ho na prístup k úložisku prvkov v indexe „i“.

napr.

C++




konverzia nfa na dfa

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

>

>

Výkon

G G>

b) funkcia predná ( ) a zadná ( ): Tieto metódy sa používajú na priamy prístup k prvému a poslednému prvku poľa.

C++




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

>

>

Výkon

71 71>

c) funkcia swap( ): Táto funkcia swap sa používa na výmenu obsahu dvoch polí.

napr.

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

>

>

Výkon

77 80>

d) funkcia empty( ): Táto funkcia sa používa na kontrolu, či je deklarované pole STL prázdne alebo nie, ak je prázdne, vráti true else false.

napr.:

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

>

>

Výkon

false>

e) funkcia at( ): Táto funkcia sa používa na prístup k prvku uloženému na konkrétnom mieste, ak sa pokúsime získať prístup k prvku, ktorý je mimo veľkosti poľa, vyvolá výnimku.

napr.:

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

>

>

Výkon

71 80>

f) funkcia fill( ): Toto sa špeciálne používa na inicializáciu alebo vyplnenie všetkých indexov poľa podobnou hodnotou.

napr.:

C++


čo je základná zostava ubuntu



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

>

>

Výkon

1 1 1 1 1>

g) funkcia size() alebo max_size() a sizeof(): Size() aj max_size() sa používajú na získanie maximálneho počtu indexov v poli, zatiaľ čo sizeof() sa používa na získanie celkovej veľkosti poľa v bajtoch.

C++




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

>

>

Výkon

10 10 40>

h) údaje ( ): Táto funkcia vráti ukazovateľ na prvý prvok objektu poľa. Pretože prvky v poli sú uložené v súvislých pamäťových miestach. Táto funkcia data() nám vracia základnú adresu objektu typu reťazec/znak.

napr.

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

>

>


Výkon

techcodeview.com>

I) cbegin() a cend(): prejdite na tento odkaz gfg: Klikni na mňa