10 maja 2013

std::array (nowy kontener w C++11)

Nowy standard wprowadza nowe kontenery jednym z nich jest std::array. Odpowiednik tablicy, musi zostać zainicjowany w momencie stworzenia. Obowiązkową wartością przekazywaną do kontenera jest jej rozmiar. Jeżeli będzie mniejszy niż liczba elementów, pozostałe zostaną zainicjowane domyślnymi wartościami. Po stworzeniu, można się dobrać do konkretnych elementów.
#include <iostream>
#include <array>

int main()
{
    std::array<int, 6> arr {1, 5, 7, 7, 2};
//  arr = {1, 1, 2, 2, 3, 3,};  // Error

//  arr[77534905] = 4;          // Segmentation fault - zakres nie jest sprawdzany
    arr.at(3) = 404;            // W razie błędu zwróci std::out_of_range
    for(const int& i : arr)
        std::cout << i << " ";
    return 0;
}
Z racji przeznaczenia, kontener nie ma kilku charakterystycznych dla innych kontenerów metod np. "clear". Przydatny link http://en.cppreference.com/w/cpp/container/array.
Wyniki:
1 5 7 404 2 0

Brak komentarzy:

Prześlij komentarz