template void set::add(T num){ if (pos == length - 1){ //resize the array T *temp = new T[length * 2]; int i; for (i = 0; i < this->getSize(); i++){ temp[i] = data[i]; } data = temp; delete temp; length += length; } if (!this->contains(num)){ if (pos == 0) data[pos] = num; else if (num > data[pos - 1]) data[pos] = num; else { T *t = new T[pos]; for (int j = 0; j < pos; j++){ t[j] = data[j]; } for (int j = 0; j < pos; j++){ if (num < data[j]){ data[j] = num; for (int k = j + 1; k < pos + 1; k++){ data[k] = t[k - 1]; } }else if ((num > data[j]) && (num < data[j+1])){ data[j + 1] = num; for (int k = j + 2; k < length; k++){ data[k] = t[k - 1]; } } } } pos++; } }