:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
08/11/04 02:55
음.. 템플릿에 대한 개념부터 정립하셔야 할 듯 하네요..
위의 경우에는 데이터 저장을 위한 구조를 STL deque를 이용하는것을 기본으로, 원하는 경우에는 다른 저장소... 그러니까, vector나 list 등으로 교체하는것이 가능하도록 구현한 것으로 보이고요, 아래의 경우에는, 저장소를 지정하는 부분을 빼고 그 부분은 클래스 내부로 감춰놓은 것으로 보입니다. 여차피 쓸 때는 똑같아요. 학부 과제 수준이라면 그냥 심플하게 가시는게 좋을 듯 합니다. ... 그리고, STL에 stack이.. 없던가요?;;; (제가 다른거랑 착각하는걸지도 모르겠는데;;) 일반적인 경우라면, STL list나 deque등을 써서, push, pop을 wrapping 하면 간단하게 구현 가능할 것으로 보입니다.
08/11/04 14:26
STL에 당연히 스택 있습니다. std::stack<typename>으로 쓰시면 되고, template <class T, class C = deque<T>> class stack
... 어쩌고 하는 부분은 STL 내부에서 구현하는(적어도 비주얼 스튜디오는 그렇습니다.) 부분의 헤더를 설명해놓은 것 같네요.
STL은 라이브러리(Standard Template Library)입니다. 스택을 구현하라고 만든 게 아니라 거기에 있는 스택 객체를 쓰라고 만든 거죠. 멤버 함수 push()로 스택에 객체를 밀어넣고, pop()하면 스택 가장 위의 객체를 빼냅니다. top()으로 스택 가장 위의 객체를 얻어낼 수 있구요. size()로 스택의 크기를 알아낼 수 있습니다.(인터넷에 std::stack으로 찾아도 많이 나올 듯..) http://www.winapi.co.kr/ 가시면 C++강좌 고급 쪽에 STL 기초적인 부분 설명 잘 되어 있습니다.
|