Què és std::array en C++
En C++, un contenidor conegut com std::array s'utilitza per contenir un nombre fix d'elements del mateix tipus de dades. El std::array El contenidor ofereix una alternativa a les matrius d'estil C, ja que és més segur, més fàcil d'utilitzar i té un millor rendiment.
La classe, que és un component de la biblioteca estàndard de C++, ofereix un enfocament pràctic i eficaç per emmagatzemar i accedir a elements amb el mateix tipus de dades. Perquè la mida de std::array es coneix en temps de compilació, la sobrecàrrega del temps d'execució de l'escala dinàmica es redueix. La mida de la matriu la defineix el paràmetre de plantilla i els elements de la std::array es guarden a la memòria contigua.
Declarar std::array en C++
Pots declarar std::array M'agrada:
std :: matriu < int , 4 > arr ;
La sintaxi anterior declara una matriu anomenada arr amb una mida fixa de 4 elements, on cada element és de tipus int.
Exemple de std::array
Exemple 1: El següent és un exemple senzill de la inicial a std::array en C++:
#inclou
#inclou
int principal ( ) {
std :: matriu < int , 4 > arr = { 4 , 6 , 2 , 1 } ;
per ( int i = 0 ; i < arr. mida ( ) ; i ++ ) {
std :: cout << arr [ i ] << ' ' ;
}
std :: cout << std :: endl ;
tornar 0 ;
}
Sortida
Exemple 2: També pots utilitzar std::array per accedir als elements d'una matriu. El codi es mostra a continuació:
#inclou#inclou
int principal ( ) {
std :: matriu < int , 3 > arr = { 1 , 2 , 3 } ;
std :: cout << 'El primer element és' << arr [ 0 ] << std :: endl ;
std :: cout << 'El segon element és' << arr. a les ( 1 ) << std :: endl ;
std :: cout << 'El tercer element és' << arr. esquena ( ) << std :: endl ;
tornar 0 ;
}
Sortida
Exemple 3: L'exemple següent mostra la impressió d'un element des d'una matriu en una posició específica utilitzant std::array en C++.
#inclou#inclou
int principal ( )
{
std :: matriu < int , 4 > arr = { 4 , 6 , 2 , 1 } ;
std :: cout << arr [ 3 ] << std :: endl ;
tornar 0 ;
}
Sortida
Avantatges de std::array en C++
A diferència de les matrius tradicionals en C++, std::array ofereix un ventall de funcions.
1: Sintaxi intuïtiva
std::array té una sintaxi més intuïtiva per a la inicialització i es pot inicialitzar mitjançant una llista d'inicialitzadors. Això proporciona una manera més concisa i llegible d'inicialitzar la matriu.
2: Aprovat com a arguments
std::array es poden passar com a arguments a les funcions, i també és possible tornar-los des de les funcions.
3: Gestió de la memòria
Un dels avantatges clau de l'ús std::array és que proporciona una gestió de memòria fàcil i eficient. Això vol dir que no hi ha necessitat d'assignació o desassignació manual de memòria.
4: Comprovació automàtica d'enllaços
El fet que std::array ofereix una comprovació automatitzada de límits sobre matrius d'estil C és un dels seus avantatges clau. Això vol dir que si el programa intenta accedir a un element fora de l'interval definit de la matriu, el compilador produirà un error. Els desbordaments de memòria intermèdia, els errors de segmentació i les fuites de memòria són només alguns dels problemes freqüents de programació que la comprovació limitada us pot ajudar a evitar.
5: Proporciona funcions útils
std::array ofereix diverses funcions útils, com ara iteradors, size(), front(), back(), fill() i at(), que és un altre avantatge. Aquestes funcions faciliten la manipulació dels elements de la matriu sense necessitat de codi complex i propens a errors. Els iteradors, per exemple, faciliten la navegació entre els elements de la matriu, i el mètode fill() us permet proporcionar un valor únic a tot el conjunt d'elements de la matriu.
Conclusió
En C++, el std::array Class ofereix una manera pràctica de treballar amb matrius de mida fixa, juntament amb algunes funcions útils i els avantatges de la seguretat de tipus i rang. Per a la inicialització i la comprovació de límits, proporciona una sintaxi més clara i comprensible, que pot ajudar a evitar molts errors de programació típics. Per a la majoria de situacions en què s'han d'utilitzar matrius de mida fixa, es recomana l'ús de std::array, ja que proporciona un mètode més actual i segur per manipular-los.