SHARE
TWEET

jebać polibude

a guest Dec 16th, 2018 58 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cmath>
  3. //#include <string>
  4. #include <cstdlib>
  5. #include<utility>
  6.  
  7. using namespace std;
  8.  
  9. class Container
  10. {
  11. public:
  12.     int m_size;
  13.     int *m_array;
  14.     int m_counter;
  15.  
  16.  
  17.     Container(int size) : m_size(size)
  18.     {
  19.         m_array = new int[m_size];
  20.         m_counter = 0;
  21.     }
  22.  
  23.     //kopiujacy
  24.     Container(const Container &container)
  25.     {
  26.         m_counter = container.m_counter;
  27.         m_size = container.m_size;
  28.         m_array = new int[m_size];
  29.         for(int i=0; i<m_size; i++)
  30.         {
  31.             m_array[i]=container.m_array[i];
  32.         }
  33.         //m_array = container.m_array;
  34.     }
  35.  
  36.     //przenoszacy
  37.     Container(Container &&con)
  38.     {
  39.         m_counter = con.m_counter;
  40.         m_size = con.m_size;
  41.         m_array = new int[m_size];
  42.         //for(int i=0; i<m_counter; i++)
  43.        
  44.             m_array=con.m_array;
  45.        
  46.         con.m_array=nullptr;
  47.         con.m_counter = 0;
  48.         con.m_size=0;
  49.         //con.m_array=new int[con.counter];
  50.         //container.m_array = nullptr;
  51.     }
  52.  
  53.     ~Container()
  54.     {
  55.         delete[] m_array;
  56.     }
  57.  
  58.     void displayArray()
  59.     {
  60.         for (int i = 0; i < m_counter; ++i)
  61.         {
  62.             cout << m_array[i] << ' ';
  63.         }
  64.        
  65.     }
  66.  
  67.     void changeSize(int size)
  68.     {
  69.         int *array = new int[size];
  70.         if (size >= m_size)
  71.         {
  72.             for (int i = 0; i < m_size; ++i)
  73.                 array[i] = m_array[i];
  74.         }
  75.         else
  76.         {
  77.             for (int i = 0; i < size; ++i)
  78.                 array[i] = m_array[i];
  79.             m_counter -= (m_size - size);
  80.         }
  81.  
  82.         //m_tablica = tablica;
  83.         m_size = size;
  84.         delete[] array;
  85.     }
  86.    
  87.     void addItem(int item)
  88.     {
  89.         if (m_counter >= m_size)
  90.         {
  91.             int *array = new int[m_size + 1];
  92.             for (int i = 0; i < m_size; ++i)
  93.                 array[i] = m_array[i];
  94.  
  95.             ++m_size;
  96.             delete[] array;
  97.             m_array[m_counter] = item;
  98.             ++m_counter;
  99.         }
  100.         else
  101.         {
  102.             m_array[m_counter] = item;
  103.             ++m_counter;
  104.         }
  105.     }
  106.  
  107.     void deleteItem(int index)
  108.     {
  109.         if ((index < 0) || (index > (m_counter - 1)))
  110.         {
  111.             for (int i = index; i < m_counter; i++)
  112.             {
  113.                 m_array[i] = m_array[i + 1];
  114.             }
  115.             m_array[m_counter] = 0;
  116.         }
  117.         else
  118.         {
  119.             --m_counter;
  120.             for (int i = index; i < m_counter; i++)
  121.             {
  122.                 m_array[i] = m_array[i + 1];
  123.             }
  124.             m_array[m_counter] = 0;
  125.         }
  126.     }
  127.  
  128.  
  129.     int getCounter() { return m_counter; }
  130.     int getSize() { return m_size; }
  131.     int* getArray() { return m_array; }
  132. };
  133.  
  134.  
  135.  
  136. int main()
  137. {
  138.     /*Container container2(3);
  139.     container2.addItem(1);
  140.     container2.addItem(2);
  141.     container2.addItem(3);
  142.     container2.displayArray();
  143.     container2.deleteItem(0);
  144.     container2.displayArray();
  145.     container2.addItem(2);
  146.     container2.displayArray();
  147.     */
  148.  
  149. //    cout << "Enter array size ";
  150.     int N;
  151.     cin >> N;
  152.     Container container(N);
  153.  
  154.   //  cout << "How many elements do you want to enter?";
  155.     int H;
  156.     cin >> H;
  157.     for (int i = 0; i < H; ++i)
  158.     {
  159.         int A;
  160.         cin >> A;
  161.         container.addItem(A);
  162.     }
  163.  
  164.  
  165.     Container cpy_container(container);
  166.     //cout << "Enter size of the copy ";
  167.     int M;
  168.     cin >> M;
  169.     cpy_container.changeSize(M);
  170.  
  171.     //cout << "How many elements do you want to delete?" << endl;
  172.     int K;
  173.     cin >> K;
  174.  
  175.     for (int i = 0; i < K; ++i)
  176.     {
  177.       //  cout << "Enter index of deleting item: ";
  178.         int index;
  179.         cin >> index;
  180.         cpy_container.deleteItem(index);
  181.     }
  182.  
  183.     Container new_container(std::move(container));
  184.    
  185.  
  186.     container.displayArray();
  187.     //cout << " ";
  188.     cpy_container.displayArray();
  189.     //cout << " ";
  190.     new_container.displayArray();
  191.  
  192.     return 1;
  193. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top