j4ggi

class CIntArray

Sep 26th, 2013
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. #include <memory.h>
  2. #include <algorithm>
  3. class CIntArray
  4. {
  5.       private:
  6.               unsigned m_rozmiar;
  7.               long long* m_Tablica;
  8.       public:
  9.              CIntArray() { m_rozmiar=1; m_Tablica=new long long[m_rozmiar]; }
  10.              CIntArray(long long rozmiar) { m_rozmiar=rozmiar; m_Tablica=new long long[m_rozmiar]; }
  11.              ~CIntArray(){}
  12.              
  13.              void UstawElement(unsigned indeks, long long wartosc)
  14.              {
  15.                   if(indeks>=m_rozmiar)
  16.                                       ZmienRozmiar(indeks+1);
  17.                  
  18.                   m_Tablica[indeks]=wartosc;
  19.              }
  20.              unsigned PobierzRozmiar() const { return m_rozmiar; }
  21.              
  22.              void ZmienRozmiar(unsigned NowyRozmiar)
  23.              {
  24.                   long long* NowaTablica=new long long[NowyRozmiar];
  25.                   memcpy(NowaTablica, m_Tablica, sizeof(long long)*m_rozmiar);
  26.                   delete[] m_Tablica;
  27.                   m_Tablica=NowaTablica;
  28.                   m_rozmiar=NowyRozmiar;
  29.              }
  30.              
  31.              long long PobierzElement(unsigned indeks) const { return m_Tablica[indeks]; }
  32.              
  33.              void UsunElement(unsigned indeks)
  34.              {
  35.                   long long* NowaTablica=new long long[m_rozmiar-1];
  36.                   memcpy(NowaTablica, m_Tablica, sizeof(long long)*(indeks));                  
  37.                   memcpy(NowaTablica+indeks, m_Tablica+indeks+1, sizeof(long long)*(m_rozmiar-indeks-1));
  38.                   delete[] m_Tablica;
  39.                   m_Tablica=NowaTablica;
  40.                   m_rozmiar-=1;
  41.              }
  42.              
  43.              void Sortuj()
  44.              {
  45.                   std::sort(m_Tablica, m_Tablica+m_rozmiar);
  46.                   bool deleted;
  47.                   do
  48.                   {
  49.                        deleted = false;
  50.                        for (int  i=0; i<m_rozmiar-1; ++i)
  51.                            if (m_Tablica[i] == m_Tablica[i + 1])
  52.                            {
  53.                                       UsunElement(i);
  54.                                       deleted = true;
  55.                            }
  56.                   }while(deleted);
  57.              }
  58. };
Advertisement
Add Comment
Please, Sign In to add comment