Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- //#include <string>
- #include <cstdlib>
- #include<utility>
- using namespace std;
- class Container
- {
- public:
- int m_size;
- int *m_array;
- int m_counter;
- Container(int size) : m_size(size)
- {
- m_array = new int[m_size];
- m_counter = 0;
- }
- //kopiujacy
- Container(const Container &container)
- {
- m_counter = container.m_counter;
- m_size = container.m_size;
- m_array = new int[m_size];
- for(int i=0; i<m_size; i++)
- {
- m_array[i]=container.m_array[i];
- }
- //m_array = container.m_array;
- }
- //przenoszacy
- Container(Container &&con)
- {
- m_counter = con.m_counter;
- m_size = con.m_size;
- m_array = new int[m_size];
- //for(int i=0; i<m_counter; i++)
- m_array=con.m_array;
- con.m_array=nullptr;
- con.m_counter = 0;
- con.m_size=0;
- //con.m_array=new int[con.counter];
- //container.m_array = nullptr;
- }
- ~Container()
- {
- delete[] m_array;
- }
- void displayArray()
- {
- for (int i = 0; i < m_counter; ++i)
- {
- cout << m_array[i] << ' ';
- }
- }
- void changeSize(int size)
- {
- int *array = new int[size];
- if (size >= m_size)
- {
- for (int i = 0; i < m_size; ++i)
- array[i] = m_array[i];
- }
- else
- {
- for (int i = 0; i < size; ++i)
- array[i] = m_array[i];
- m_counter -= (m_size - size);
- }
- //m_tablica = tablica;
- m_size = size;
- delete[] array;
- }
- void addItem(int item)
- {
- if (m_counter >= m_size)
- {
- int *array = new int[m_size + 1];
- for (int i = 0; i < m_size; ++i)
- array[i] = m_array[i];
- ++m_size;
- delete[] array;
- m_array[m_counter] = item;
- ++m_counter;
- }
- else
- {
- m_array[m_counter] = item;
- ++m_counter;
- }
- }
- void deleteItem(int index)
- {
- if ((index < 0) || (index > (m_counter - 1)))
- {
- for (int i = index; i < m_counter; i++)
- {
- m_array[i] = m_array[i + 1];
- }
- m_array[m_counter] = 0;
- }
- else
- {
- --m_counter;
- for (int i = index; i < m_counter; i++)
- {
- m_array[i] = m_array[i + 1];
- }
- m_array[m_counter] = 0;
- }
- }
- int getCounter() { return m_counter; }
- int getSize() { return m_size; }
- int* getArray() { return m_array; }
- };
- int main()
- {
- /*Container container2(3);
- container2.addItem(1);
- container2.addItem(2);
- container2.addItem(3);
- container2.displayArray();
- container2.deleteItem(0);
- container2.displayArray();
- container2.addItem(2);
- container2.displayArray();
- */
- // cout << "Enter array size ";
- int N;
- cin >> N;
- Container container(N);
- // cout << "How many elements do you want to enter?";
- int H;
- cin >> H;
- for (int i = 0; i < H; ++i)
- {
- int A;
- cin >> A;
- container.addItem(A);
- }
- Container cpy_container(container);
- //cout << "Enter size of the copy ";
- int M;
- cin >> M;
- cpy_container.changeSize(M);
- //cout << "How many elements do you want to delete?" << endl;
- int K;
- cin >> K;
- for (int i = 0; i < K; ++i)
- {
- // cout << "Enter index of deleting item: ";
- int index;
- cin >> index;
- cpy_container.deleteItem(index);
- }
- Container new_container(std::move(container));
- container.displayArray();
- //cout << " ";
- cpy_container.displayArray();
- //cout << " ";
- new_container.displayArray();
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement