Ce este std::array în C++
În C++, un container cunoscut sub numele std::array este folosit pentru a deține un număr fix de articole de același tip de date. The std::array containerul oferă o alternativă la matricele în stil C, deoarece este mai sigur, mai ușor de utilizat și are performanțe mai bune.
Clasa, care este o componentă a bibliotecii standard C++, oferă o abordare practică și eficientă pentru stocarea și accesarea elementelor cu același tip de date. Deoarece dimensiunea de std::array este cunoscut la momentul compilării, supraîncărcarea de rulare a scalarii dinamice este redusă. Mărimea matricei este setată de parametrul șablon și elementele din std::array sunt păstrate în memoria contiguă.
Declarați std::array în C++
Poti declara std::array ca:
std :: matrice < int , 4 > arr ;
Sintaxa de mai sus declară o matrice numită arr cu o dimensiune fixă de 4 elemente, unde fiecare element este de tip int.
Exemplu de std::array
Exemplul 1: Următorul este un exemplu simplu pentru parafa a std::array în C++:
#include
#include
int principal ( ) {
std :: matrice < int , 4 > arr = { 4 , 6 , 2 , 1 } ;
pentru ( int i = 0 ; i < arr. mărimea ( ) ; i ++ ) {
std :: cout << arr [ i ] << ' ' ;
}
std :: cout << std :: endl ;
întoarcere 0 ;
}
Ieșire
Exemplul 2: De asemenea, puteți utiliza std::array pentru a accesa elementele dintr-o matrice. Codul este dat mai jos:
#include#include
int principal ( ) {
std :: matrice < int , 3 > arr = { 1 , 2 , 3 } ;
std :: cout << 'Primul element este' << arr [ 0 ] << std :: endl ;
std :: cout << 'Al doilea element este' << arr. la ( 1 ) << std :: endl ;
std :: cout << 'Al treilea element este' << arr. înapoi ( ) << std :: endl ;
întoarcere 0 ;
}
Ieșire
Exemplul 3: Următorul exemplu arată tipărirea unui element dintr-o matrice într-o anumită poziție folosind std::array în C++.
#include#include
int principal ( )
{
std :: matrice < int , 4 > arr = { 4 , 6 , 2 , 1 } ;
std :: cout << arr [ 3 ] << std :: endl ;
întoarcere 0 ;
}
Ieșire
Avantajele std::array în C++
Spre deosebire de matricele tradiționale din C++, std::array oferă o gamă largă de caracteristici.
1: Sintaxă intuitivă
std::array are o sintaxă mai intuitivă pentru inițializare și poate fi inițializată folosind o listă de inițializare. Aceasta oferă o modalitate mai concisă și mai lizibilă de inițializare a matricei.
2: Trecut drept argumente
std::array pot fi transmise ca argumente la funcții și este posibil să le returnați și din funcții.
3: Managementul memoriei
Unul dintre avantajele cheie ale utilizării std::array este că oferă o gestionare ușoară și eficientă a memoriei. Aceasta înseamnă că nu este nevoie de alocarea sau dezalocarea manuală a memoriei.
4: Verificare automată legată
Faptul că std::array oferă verificarea automată a limitelor peste matrice în stil C este unul dintre avantajele sale cheie. Aceasta înseamnă că dacă programul încearcă să acceseze un element în afara intervalului definit al matricei, compilatorul va produce o eroare. Depășirile de buffer, defecțiunile de segmentare și scurgerile de memorie sunt doar câteva dintre problemele frecvente de programare pe care verificarea legată vă poate ajuta să le evitați.
5: Oferă funcții utile
std::array oferă mai multe funcții utile, cum ar fi iteratoare, size(), front(), back(), fill() și at(), care este un alt avantaj. Aceste funcții facilitează manipularea elementelor matricei fără a fi nevoie de cod complex și predispus la erori. Iteratoarele, de exemplu, simplifică navigarea printre elementele matricei, iar metoda fill() vă permite să furnizați o singură valoare întregului set de elemente ale matricei.
Concluzie
În C++, std::array clasa oferă un mod practic de a lucra cu matrice de dimensiuni fixe, împreună cu câteva funcții utile și avantajele siguranței tipului și a gamei. Pentru inițializare și verificarea limitelor, oferă o sintaxă mai clară și mai ușor de înțeles, care poate ajuta la evitarea multor greșeli tipice de programare. Pentru majoritatea situațiilor în care trebuie utilizate matrice de dimensiuni fixe, se recomandă utilizarea std::array, deoarece oferă o metodă mai actualizată și mai sigură de manipulare a acestora.