STD::array in C++
L'array è una raccolta di oggetti omogenei e questo contenitore di array è definito per array di dimensione costante o (dimensione statica). Questo contenitore avvolge array di dimensione fissa e le informazioni sulla sua dimensione non vengono perse quando dichiarate su un puntatore.
Per utilizzare gli array, dobbiamo includere l'intestazione dell'array:
#include
Vediamo un esempio.
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>oppure1{{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;> }> |
Produzione:
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
Questo array STL C++ è una sorta di contenitore sequenziale e non viene utilizzato estremamente nella programmazione regolare o nella programmazione competitiva, ma a volte la sua funzione membro fornisce un vantaggio superiore rispetto all'array normale normale che utilizziamo nella nostra vita quotidiana. Quindi, stiamo discutendo alcune delle importanti funzioni membro utilizzate con questo tipo di array:
Le funzioni membro per il modello di array sono le seguenti:
Sintassi: array nome_arr;
a) [ ] Operatore : Questo è simile all'array normale, lo usiamo per accedere all'archivio elementi nell'indice 'i'.
Ex:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> char> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> > cout < ' ' < return 0; }> |
Produzione
G G
b) funzione front( ) e back( ): Questi metodi vengono utilizzati per accedere direttamente al primo e all'ultimo elemento dell'array.
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 3>arr={> 'G'> ,> 'f'> ,> 'G'> };> // ASCII val of 'G' =71> > cout < ' ' < return 0; }> |
Produzione
71 71
c) funzione scambia(): Questa funzione di scambio viene utilizzata per scambiare il contenuto dei due array.
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; }> |
Produzione
77 80
d) funzione vuota( ): Questa funzione viene utilizzata per verificare se l'array STL dichiarato è vuoto o meno, se è vuoto restituisce true altrimenti 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; }> |
Produzione
false
e) funzione at( ): Questa funzione viene utilizzata per accedere all'elemento memorizzato in una posizione specifica, se proviamo ad accedere all'elemento che è fuori dai limiti della dimensione dell'array, genera un'eccezione.
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;> }> |
Produzione
71 80
f) funzione fill(): Viene utilizzato specialmente per inizializzare o riempire tutti gli indici dell'array con un valore simile.
Ex:
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 5>arr;> > arr.fill(1);> > for> (> int> i: arr)> > cout < ' '; return 0; }> |
Produzione
1 1 1 1 1
g) funzione size() o max_size() e sizeof(): Sia size() che max_size() vengono utilizzati per ottenere il numero massimo di indici nell'array mentre sizeof() viene utilizzato per ottenere la dimensione totale dell'array in byte.
C++
#include> #include> using> namespace> std;> int> main() {> > array <> int> , 10>arr;> > cout < '
'; // total num of indexes cout < '
'; // total num of indexes cout < |
Produzione
10 10 40
h) dati( ): Questa funzione restituisce il puntatore al primo elemento dell'oggetto array. Perché gli elementi nell'array sono archiviati in posizioni di memoria contigue. Questa funzione data() ci restituisce l'indirizzo base dell'oggetto di tipo 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;> }> |
techcodeview.com
I) cbegin() e cend(): vai a questo collegamento gfg: Cliccami