#include <iostream>

template <typename T>
class MyVector
{
private:
    unsigned vtr_size;
    unsigned capacity;
    T* elements;

public:
    MyVector(unsigned size, T default_value = T()) 
    	: vtr_size(size), capacity(size), elements(new T[size]) 
    {
        for (unsigned i = 0; i < vtr_size; ++i)
            elements[i] = default_value;
    }

    T at(unsigned index) const 
    {
        if ( index < vtr_size) 
            return elements[index]; 

        return T();
    }

    unsigned size() const { return vtr_size; }
};

template <typename container>
void print(const container& c)
{
    for (unsigned i = 0; i < c.size(); ++i)
        std::cout << c.at(i) << ' ';
    std::cout << '\n';
}

int main()
{
    MyVector<int> V1(5);
    MyVector<int> V2(5, 4);

    print(V1);
    std::cout << '\n';

    print(V2);
    std::cout << '\n';
}
