본문 바로가기

programming/C++

MyVector - 떡떡한배열2

──────────────────────────────────
T *base;                                
int usage;
int capacity;
──────────────────────────────────
+ MyVector(int _capa=0, T in=0)
+ v ~MyVector()
+ void PushBack(T in)
+ void Inser(int index, T in)
+ void Erase(int index)
+ T &operator[ ](int index)
+ int Usage()
+ int Capacity()
- void Init Property();
- void ExtendStorage(int _capacity);
- void Pushback(int cnt, T in);
- void ShiftRight(int index);
- void ShiftLeft(int index); 
(- void AvailIndex(int index);)
──────────────────────────────────
확장 배열
순차 배열
완전 배열

T *base : 버퍼위치
int usage: 보안된 개체수(다음 보관할 개체 위치를 결정하는 요인)
int capacity:버퍼의 크기

template <class T>
MyVector<T>::MyVector(int _capacity =0, T in =0)
{
         //프로퍼티 초기화
          base =0;
          usage = 0;
          capacity=0;
        // 버퍼생성
        // in을 _capacity만큼 PushBack
}

template <class T>
MyVector<T>::~myVector)_
{
            //버퍼소멸
}

tempalte <class T>
MyVector<T>::Pushback (T in)   //순차보관
{
            버퍼가 꽉 찼다면 
            현재 capapcity가 참이면 capacity *2 크기로 버퍼증가
            거짓이면 1크기로 버퍼증가
         
            usage 위치에 in을보관          base[usage]=in;
            usage 증가                         
}

template <class T>
MyVector<T>::Insert(int index, T in)
{
            꽉 찼다면
            만약 capacity가 참이면
                   capacity*2 ㅋ기로 버퍼증가
             거짓이면
                   1크기로 증가
              index 뒤에 보관된 개체들을 1칸씩 shiftRight
              index 위치에 in을 대입
}
template <class T>
Myvector<T>::Erase(int index)
{
          index 뒤에 보관된 개체를 ShiftLeft
          usage 감소
}

template <class T>
T & MyVector<T>::operator[ ](int index)
{
           index가 유효하지 않으면
                        예외발생
           index가 위치 원소 반환
           return base[index];                
}

template <class T>
int MyVector<T>::Usage()
{
           return usage;
}        //맞어?ㅋㅋ

template <class T>
int Capacity<T>::Capacity()
{
            return capacity;
}       //맞나?ㅋㅋ

template <class T>
void MyVector<T>::ExtendStorage(int _capacity)       //capacity 늘려주는 작업
{
          현재 base를 temp에 대입
          base에 _capacity공간 할당
          기존 temp에 보관된 개체를 base에 보관(usage)
          temp해제
          capacity를 _capacity로 대입
}








'programming > C++' 카테고리의 다른 글

3. Hash Function에 의해 자료를 보관  (0) 2009.11.19
2. 특정 키순으로 보관(complete)  (0) 2009.11.19
떡떡한 배열(?)  (0) 2009.11.17
Template(2)  (0) 2009.11.17
Template.  (0) 2009.11.17