-
Cache-friendly, tzn. iterując po
std::array<T, N>, zostanie on cały załadowany do pamięci podręcznej procesora, co przyspieszy odczytywanie danych -
Typ
<T>może być dowolny. Zarówno typ wbudowany jak int, double, jak i własny zdefiniowany przez nas typ -
Typ
<N>oznacza rozmiar tablicy, który musi być znany już w czasie kompilacji - Elementy są ułożone obok siebie w pamięci, tak jak w zwykłej tablicy
-
std::arrayjest najprymitywniejszymwrapperemna zwykłe tablice, używanie jej jest praktycznie tak samo wydajne - Nie możemy dodać nowego elementu, możemy jedynie dokonać modyfikacji już istniejących pól
- Odczyt oraz modyfikacja elementów jest bardzo szybka
- Tak jak nie możemy dodać elementów, tak też nie możemy ich usunąć (rozmiar się nie zmienia)
- dodawanie elementu: nie da się
-
modyfikowanie/dostęp do elementu:
at(),operator[] -
pierwszy/ostatni element:
back(),front() -
rozmiar/czy kontener jest pusty:
size(),empty() -
iterator początku/końca:
begin(),end() -
odwrócony (ang. reverse) iterator:
rbegin(),rend() -
stały iterator:
cbegin(),cend(),crbegin(),crend() -
wyczyszczenie kontenera: nie da się, jednak mamy metodę
fill, którą możemy np. wyzerować wszystkie elementy - przygotowanie elementu do usunięcia: nie da się
- wymazanie elementów z pamięci: nie da się
-
podmiana całego kontenera:
swap()
Ponieważ std::array<T, N> ma 2 parametry szablonu, niektórzy mogą mieć problem przy przekazywaniu jej do funkcji, gdyż pisząc std::array<T> zapominając o rozmiarze tablicy.
void print(const std::array<int, 10>& arr) {
for (const auto& el : arr) {
std::cout << el << ' ';
}
std::cout << '\n';
}
int main() {
std::array<int, 10> arr{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
print(arr);
return 0;
}- Znajdź dokumentację
std::arrayna cppreference.com - Stwórz nowy plik cpp i napisz funkcję
main() - Stwórz
std::arrayo rozmiarze 10 - Wypełnij ją wartościami 5
- Do czwartego elementu przypisz wartość 3
- Stwórz inną tablicę o tym samym rozmiarze
- Podmień tablice
- Wypisz obie tablice, każdą w osobnej linii