#include "niz.hpp" #include using namespace std; Niz::Niz(unsigned n) :_dimenzija(0), _kapacitet(n) { _elementi = new int[n]; } int& Niz::operator[](unsigned n) { if (n >= _kapacitet) { unsigned s = _dimenzija; _dimenzija = n + 1; _kapacitet += _dimenzija + 10; int *tmp = new int[_kapacitet]; for (unsigned i = 0; i < s; i++) tmp[i] = _elementi[i]; delete [] _elementi; _elementi = tmp; } else if (n >= _dimenzija) _dimenzija = n + 1; return _elementi[n]; } int Niz::operator[](unsigned n) const { if (n >= _dimenzija) throw "Preveliko n"; return _elementi[n]; } unsigned Niz::dimenzija() const { return _dimenzija; } unsigned Niz::kapacitet() const { return _kapacitet; } void Niz::deinit() { delete [] _elementi; } Niz::~Niz() { deinit(); } Niz::Niz(const Niz& n) { init(n); } void Niz::init(const Niz& n) { _dimenzija = n._dimenzija; _kapacitet = n._kapacitet; _elementi = new int[_kapacitet]; for (unsigned j = 0; j < _kapacitet; j++) _elementi[j] = n._elementi[j]; } Niz& Niz::operator=(const Niz& n) { if (this != &n) { deinit(); init(n); } return *this; }