Advertisement
BorjanCrvenkov

OOP av5 Array

Jul 4th, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.85 KB | None | 0 0
  1. /*Да се напише класа Array за работа со еднодимензионални полиња од
  2. целобројни елементи. За полето се чуваат информации за неговиот вкупен
  3. капцитет, тековниот број на елементи. Резервацијата на меморијата да се врши
  4. динамички. Во класата да се имплементираат следните функции:
  5. • add за додавање нови броеви во полето и притоа ако е исполнет
  6. капацитетот на полето (низата) да се зголеми за 100%.
  7. • change која има два целобројни аргументи А и В и ги заменува сите броеви
  8. А од полето во В.
  9. • deleteAll која ги брише сите појавувања на целоброниот аргумент во
  10. полето, а притоа капацитетот да не се промени.
  11. • print за печатење на елементите од полето.
  12. */
  13.  
  14. #include <iostream>
  15.  
  16. using namespace std;
  17.  
  18. class Array{
  19. private:
  20.     int *numbers;
  21.     int capacity;
  22.     int size = 0;
  23. public:
  24.     Array (){
  25.         this->capacity = 5;
  26.         this->size = 0;
  27.         numbers = new int [this->capacity];
  28.     }
  29.     Array(int capacity){
  30.         this->capacity=capacity;
  31.         this->size=0;
  32.         numbers= new int [this->capacity];
  33.     }
  34.     void add(int n){
  35.         if(size==capacity){
  36.             int *temp = new int [2*capacity];
  37.             for(int i=0;i<size;i++){
  38.                 temp[i]=numbers[i];
  39.             }
  40.             temp[size]=n;
  41.             delete [] numbers;
  42.             numbers=temp;
  43.             size++;
  44.             capacity*=2;
  45.         }else{
  46.             numbers[size]=n;
  47.             size++;
  48.         }
  49.     }
  50.     void change (int a,int b){
  51.         for(int i=0;i<size;i++){
  52.             if(numbers[i]==a);
  53.                 numbers[i]=b;
  54.         }
  55.     }
  56.     int contains(int n){
  57.         int counter=0;
  58.         for(int i=0;i<size;i++){
  59.             if(numbers[i]==n){
  60.                 counter++;
  61.             }
  62.         }
  63.         return counter;
  64.     }
  65.     void deleteAll(int n){
  66.         int povtoruvanja=contains(n);
  67.         if(povtoruvanja==0){
  68.             return ;
  69.         }else{
  70.         int *temp= new int [size - povtoruvanja];
  71.         int j=0;
  72.         for(int i=0;i<size;i++){
  73.             if(numbers[i]!=n){
  74.                 temp[j]=numbers[i];
  75.                 ++j;
  76.             }
  77.         }
  78.         delete [] numbers;
  79.         numbers=temp;
  80.         size-=povtoruvanja;
  81.         }
  82.     }
  83.     void print(){
  84.         cout<<"Cpacity: "<<capacity<<endl;
  85.         cout<<"Size: "<<size<<endl;
  86.         for(int i=0;i<size;i++){
  87.             cout<<numbers[i]<<" ";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement