──────────────────────────────────
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로 대입
}
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 |