Advertisement
Guest User

shit af

a guest
Dec 16th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.12 KB | None | 0 0
  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. private:
  12.     int m_size;
  13.     int *m_array;
  14.     int m_counter;
  15.  
  16. public:
  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.         m_array = container.m_array;
  30.     }
  31.  
  32.     //przenoszacy
  33.     Container(Container &&con)
  34.     {
  35.         m_counter = con.m_counter;
  36.         m_size = con.m_size;
  37.         m_array = new int[m_size];
  38.         for(int i=0; i<m_size; i++)
  39.         {
  40.             m_array[i]=con.m_array[i];
  41.         }
  42.         con.m_counter = 0;
  43.         con.m_size = 0;
  44.         //container.m_array = nullptr;
  45.     }
  46.  
  47.     ~Container()
  48.     {
  49.         delete[] m_array;
  50.     }
  51.  
  52.     void displayArray()
  53.     {
  54.         for (int i = 0; i < m_counter; ++i)
  55.         {
  56.             cout << m_array[i] << ' ';
  57.         }
  58.     }
  59.  
  60.     void changeSize(int size)
  61.     {
  62.         int *array = new int[size];
  63.         if (size >= m_size)
  64.         {
  65.             for (int i = 0; i < m_size; ++i)
  66.                 array[i] = m_array[i];
  67.         }
  68.         else
  69.         {
  70.             for (int i = 0; i < size; ++i)
  71.                 array[i] = m_array[i];
  72.             m_counter -= (m_size - size);
  73.         }
  74.  
  75.         //m_tablica = tablica;
  76.         m_size = size;
  77.         delete[] array;
  78.     }
  79.    
  80.     void addItem(int item)
  81.     {
  82.         if (m_counter >= m_size)
  83.         {
  84.             int *array = new int[m_size + 1];
  85.             for (int i = 0; i < m_size; ++i)
  86.                 array[i] = m_array[i];
  87.  
  88.             ++m_size;
  89.             delete[] array;
  90.             m_array[m_counter] = item;
  91.             ++m_counter;
  92.         }
  93.         else
  94.         {
  95.             m_array[m_counter] = item;
  96.             ++m_counter;
  97.         }
  98.     }
  99.  
  100.     void deleteItem(int index)
  101.     {
  102.         if ((index < 0) || (index > (m_counter - 1)))
  103.         {
  104.             for (int i = index; i < m_counter; i++)
  105.             {
  106.                 m_array[i] = m_array[i + 1];
  107.             }
  108.             m_array[m_counter] = 0;
  109.         }
  110.         else
  111.         {
  112.             --m_counter;
  113.             for (int i = index; i < m_counter; i++)
  114.             {
  115.                 m_array[i] = m_array[i + 1];
  116.             }
  117.             m_array[m_counter] = 0;
  118.         }
  119.     }
  120.  
  121.  
  122.     int getCounter() { return m_counter; }
  123.     int getSize() { return m_size; }
  124.     int* getArray() { return m_array; }
  125. };
  126.  
  127.  
  128.  
  129. int main()
  130. {
  131.     /*Container container2(3);
  132.     container2.addItem(1);
  133.     container2.addItem(2);
  134.     container2.addItem(3);
  135.     container2.displayArray();
  136.     container2.deleteItem(0);
  137.     container2.displayArray();
  138.     container2.addItem(2);
  139.     container2.displayArray();
  140.     */
  141.  
  142.     cout << "Enter array size ";
  143.     int N;
  144.     cin >> N;
  145.     Container container(N);
  146.  
  147.     cout << "How many elements do you want to enter?";
  148.     int H;
  149.     cin >> H;
  150.     for (int i = 0; i < H; ++i)
  151.     {
  152.         int A;
  153.         cin >> A;
  154.         container.addItem(A);
  155.     }
  156.  
  157.  
  158.     Container cpy_container(container);
  159.     cout << "Enter size of the copy ";
  160.     int M;
  161.     cin >> M;
  162. //  cpy_container.changeSize(M);
  163.  
  164.     cout << "How many elements do you want to delete?" << endl;
  165.     int K;
  166.     cin >> K;
  167.  
  168.     for (int i = 0; i < K; ++i)
  169.     {
  170.         cout << "Enter index of deleting item: ";
  171.         int index;
  172.         cin >> index;
  173.         cpy_container.deleteItem(index);
  174.     }
  175.  
  176.     Container new_container(std::move(container));
  177.  
  178.     container.displayArray();
  179.     cout << " ";
  180.     cpy_container.displayArray();
  181.     cout << " ";
  182.     new_container.displayArray();
  183.  
  184.     return 1;
  185. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement