#include
using namespace std;
class Array {
private:
int kapacitet;
int n;
int * niza;
public:
Array() {
kapacitet = 5;
niza = new int[kapacitet];
n = 0;
}
Array(int _kapacitet) {
kapacitet = _kapacitet;
niza = new int[kapacitet];
n = 0;
}
Array & operator += (int x) {
int tmp_niza[n + 1];
for(int i = 0; i < n; i++) {
tmp_niza[i] = niza[i];
}
tmp_niza[n] = x;
n++;
if(n > kapacitet) {
kapacitet *= 2;
}
niza = new int[kapacitet];
for(int i = 0; i < n; i++) {
niza[i] = tmp_niza[i];
}
return *this;
}
Array & operator -= (int x) {
int tmp_niza[n];
int j = 0;
for(int i = 0; i < n; i++) {
if(niza[i] != x) {
tmp_niza[j] = niza[i];
j++;
}
}
n = j;
niza = new int[kapacitet];
for(int i = 0; i < n; i++) {
niza[i] = tmp_niza[i];
}
return *this;
}
friend ostream & operator << (ostream & stream, Array tmp);
};
ostream & operator << (ostream & stream, Array tmp) {
for(int i = 0; i < tmp.kapacitet; i++) {
if(i < tmp.n) {
stream << tmp.niza[i] << " ";
}
else {
stream << " - ";
}
}
stream << endl;
return stream;
}
int main()
{
Array a;
a += (6);
a += (4);
a += (3);
a += (2);
a += (1);
Array b(a);
b -= (2);
b -= (3);
cout << a << endl;
cout << b << endl;
return 0;
}