Co je std::array v C++
V C++ je kontejner známý jako std::pole se používá k uložení pevného počtu položek stejného typu dat. The std::pole kontejner poskytuje alternativu k polím ve stylu C, protože je bezpečnější, snáze se používá a má lepší výkon.
Třída, která je součástí standardní knihovny C++, nabízí praktický a efektivní přístup k ukládání a přístupu k prvkům se stejným datovým typem. Protože velikost std::pole je známo v době kompilace, režie za běhu dynamického škálování je snížena. Velikost pole je nastavena parametrem šablony a položkami std::pole jsou uchovávány v souvislé paměti.
Deklarujte std::array v C++
Můžete prohlásit std::pole jako:
std :: pole < int , 4 > arr ;
Výše uvedená syntaxe deklaruje pole s názvem arr s pevnou velikostí 4 prvků, kde každý prvek je typu int.
Příklad std::array
Příklad 1: Následuje jednoduchý příklad pro inicializaci a std::pole v C++:
#include
#include
int hlavní ( ) {
std :: pole < int , 4 > arr = { 4 , 6 , 2 , 1 } ;
pro ( int i = 0 ; i < arr. velikost ( ) ; i ++ ) {
std :: cout << arr [ i ] << '' ;
}
std :: cout << std :: endl ;
vrátit se 0 ;
}
Výstup
Příklad 2: Můžete také použít std::pole pro přístup k prvkům v poli. Kód je uveden níže:
#include#include
int hlavní ( ) {
std :: pole < int , 3 > arr = { 1 , 2 , 3 } ;
std :: cout << 'Prvním prvkem je' << arr [ 0 ] << std :: endl ;
std :: cout << 'Druhý prvek je' << arr. na ( 1 ) << std :: endl ;
std :: cout << 'Třetím prvkem je' << arr. zadní ( ) << std :: endl ;
vrátit se 0 ;
}
Výstup
Příklad 3: Následující příklad ukazuje tisk prvku z pole na konkrétní pozici pomocí std::pole v C++.
#include#include
int hlavní ( )
{
std :: pole < int , 4 > arr = { 4 , 6 , 2 , 1 } ;
std :: cout << arr [ 3 ] << std :: endl ;
vrátit se 0 ;
}
Výstup
Výhody std::array v C++
Na rozdíl od tradičních polí v C++, std::pole nabízí řadu funkcí.
1: Intuitivní syntaxe
std::pole má intuitivnější syntaxi pro inicializaci a lze ji inicializovat pomocí seznamu inicializátorů. To poskytuje stručnější a čitelnější způsob inicializace pole.
2: Předáno jako argumenty
std::pole lze předávat jako argumenty funkcím a je možné je také vracet z funkcí.
3: Správa paměti
Jedna z klíčových výhod používání std::pole je, že poskytuje snadnou a efektivní správu paměti. To znamená, že není potřeba ruční alokace paměti nebo dealokace.
4: Automatická kontrola vazby
Skutečnost, že std::pole nabízí automatickou kontrolu hranic přes pole ve stylu C je jednou z jeho klíčových výhod. To znamená, že pokud se program pokusí získat přístup k prvku mimo definovaný rozsah pole, kompilátor vytvoří chybu. Přetečení vyrovnávací paměti, chyby segmentace a úniky paměti jsou jen některé z častých problémů s programováním, kterým vám může kontrola vazby pomoci vyhnout se.
5: Poskytuje užitečné funkce
std::pole nabízí několik užitečných funkcí, jako jsou iterátory, size(), front(), back(), fill() a at(), což je další výhoda. Tyto funkce usnadňují manipulaci s prvky pole bez nutnosti složitého kódu náchylného k chybám. Iterátory například usnadňují navigaci mezi prvky pole a metoda fill() vám umožňuje zadat jedinou hodnotu celé sadě prvků pole.
Závěr
V C++ je std::pole třída nabízí praktický způsob práce s poli pevné velikosti spolu s některými užitečnými funkcemi a výhodami bezpečnosti typu a rozsahu. Pro inicializaci a kontrolu hranic poskytuje jasnější a srozumitelnější syntaxi, která může pomoci vyhnout se mnoha typickým programátorským chybám. Pro většinu situací, kdy je nutné použít pole pevné velikosti, se doporučuje použití std::array, protože poskytuje aktuálnější a bezpečnější způsob manipulace s nimi.