logo

STD::array v C++

Pole je kolekce homogenních objektů a tento kontejner pole je definován pro pole konstantní velikosti nebo (statická velikost). Tento kontejner obtéká pole pevné velikosti a informace o jeho velikosti se při deklaraci do ukazatele neztratí.
Abychom mohli využívat pole, musíme zahrnout záhlaví pole:

 #include>

Podívejme se na pří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>nebo 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ýstup:

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 kontejneru a nepoužívá se extrémně v běžném programování nebo v konkurenčním programování, ale někdy mu jeho členská funkce poskytuje horní okraj oproti běžnému normálnímu poli, které používáme v našem každodenním životě. Diskutujeme tedy o některých důležitých členských funkcích, které se používají s takovým typem pole:

Členské funkce pro šablonu pole jsou následující:

Syntaxe: pole název_pole;

a) [ ] Provozovatel : Toto je podobné normálnímu poli, používáme ho pro přístup k úložišti prvků na indexu ‚i‘ .

Příklad:

C++




java int jako řetězec

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

>

>

Výstup

G G>

b) funkce přední ( ) a zadní ( ): Tyto metody se používají pro přímý přístup k prvnímu a poslednímu prvku pole.

C++




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

>

>

Výstup

71 71>

c) funkce swap( ): Tato funkce swap se používá k prohození obsahu dvou polí.

Příklad:

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ýstup

77 80>

d) funkce empty( ): Tato funkce se používá ke kontrole, zda je deklarované pole STL prázdné nebo ne, pokud je prázdné, vrací true else false.

Příklad:

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ýstup

false>

e) funkce at(): Tato funkce se používá pro přístup k prvku uloženému na konkrétním místě, pokud se pokusíme o přístup k prvku, který je mimo rozsah velikosti pole, vyvolá výjimku.

Příklad:

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ýstup

71 80>

f) funkce fill(): To se speciálně používá k inicializaci nebo vyplnění všech indexů pole podobnou hodnotou.

Příklad:

C++


chr funkce python



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

>

>

Výstup

1 1 1 1 1>

g) funkce size() nebo max_size() a sizeof(): Jak size() tak max_size() se používají k získání maximálního počtu indexů v poli, zatímco sizeof() se používá k získání celkové velikosti pole v bajtech.

C++




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

>

>

Výstup

10 10 40>

h) údaje(): Tato funkce vrací ukazatel na první prvek objektu pole. Protože prvky v poli jsou uloženy v souvislých paměťových místech. Tato funkce data() nám vrací základní adresu objektu typu řetězec/znak.

Příklad:

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ýstup

techcodeview.com>

I) cbegin() a cend(): přejděte na tento odkaz gfg: Klikni na mě