본문 바로가기

알고리즘/C++

Container Class와 Template

컨테이너 클래스 (Container Class)

다수의 데이터 객체를 저장하는 자료구조 class

class Bag {
public:
   Bag (int bagCapacity=10); 	// 생성자
   ~Bag();			// 파괴자
   
   int Size() const;		// Bag의 원소 수 반환
   bool IsEmpty() const;	// Bag이 공백인지 아닌지
   int Element() const;		// Bag에 있는 원소 반환
   void Push(const int&);	// Bag에 정수 삽입
   void Pop();			// Bag에 정수 삭제
 
private: 
   int *array;
   int capactiy;	// 배열 크기
   int top;		// 배열에서 top 원소 위치
}

※ const 멤버함수는 class 내 멤버 변수 치환 불가

 

 

Template 이용

template <class T>
class Bag {
public:
   Bag (int bagCapacity = 10);
   ~Bag ();			
   
   int Size() const;
   bool IsEmpty() const;
   T Element() const;
   void Push(const T&);
   void Pop();

private:
   T *array;
   int cpapcity;
   int top;
}

 

 

template class의 인스턴스화

Bag<int> a;			// int형 container
Bag<Rectangle> r;		// Rectangle형 container

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

4. 큐 (Queue)  (0) 2020.07.21
3. 스택 (Stack)  (0) 2020.07.21
2. 배열 (Array)  (0) 2020.07.13
1. 기본 개념  (0) 2020.07.12
C++ 배열 동적할당  (0) 2020.06.23