STL 소스 코드 분석 - stack 의 실현 원리 와 사용 방법 에 대한 상세 한 설명
2147 단어 STL 소스 분석
stack 은 스 택 용기 로 '선진 후 출' 용기 입 니 다.
stack 은 deque 용 기 를 간단하게 장식 하여 다른 용기 가 됩 니 다.
stack 을 사용 할 때 헤더 파일 을 추가 해 야 합 니 다 \ # include.
stack 실현 원리
어떤 기 존 용 기 를 밑부분 구조 로 하여 인 터 페 이 스 를 바 꾸 어 '선진 후 출' 의 특성 에 부합 시 켜 하나의 stack 을 형성 하 는 것 은 쉽게 할 수 있다.deque 는 양 방향 개 구 부 데이터 구조 로 deque 를 밑부분 구조 로 하고 머리 끝 개 구 부 를 닫 으 면 쉽게 stack 을 형성 할 수 있 습 니 다.따라서 STL 은 deque 를 결 성 된 상황 에서 stack 의 밑부분 구조 로 한다.
stack 계 는 바닥 용기 로 모든 작업 을 완성 하기 때문에 이러한 '특정한 인 터 페 이 스 를 수정 하여 다른 모습 을 형성 하 는' 성질 을 가 진 사람 을 adapter (어댑터) 라 고 부 르 기 때문에 stack 은 용기 어댑터 로 분류 된다.
stack 대상 의 기본 구조
stack 은 템 플 릿 류 로 이 루어 집 니 다. stack 대상 의 기본 구조 형식: stack stkT;
stack stkInt; // int stack 。
stack stkFloat; // float stack 。
stack stkString; // string stack 。
괄호 안에 포인터 형식 이나 사용자 정의 형식 도 설정 할 수 있 습 니 다.
stack 의 push () 와 pop () 방법
stack.push(elem); //
stack.pop(); //
stack stkInt;
stkInt.push(1);
stkInt.push(3);
stkInt.pop();
stkInt.push(5);
stkInt.push(7);
stkInt.push(9);
stkInt.pop();
stkInt.pop();
// stkInt 1,5
stack 대상 의 복사 구조 와 할당
stack(const stack &stk); //
stack& operator=(const stack &stk); //
stack stkIntA;
stkIntA.push(1);
stkIntA.push(3);
stkIntA.push(5);
stkIntA.push(7);
stkIntA.push(9);
stack stkIntB(stkIntA); //
stack stkIntC;
stkIntC = stkIntA; //
stack 데이터 액세스
stack.top(); //
stack stkIntA;
stkIntA.push(1);
stkIntA.push(3);
stkIntA.push(5);
stkIntA.push(7);
stkIntA.push(9);
int iTop = stkIntA.top(); //9
stkIntA.top() = 19; //19
stack 크기
stack.empty(); //
stack.size(); //
stack stkIntA;
stkIntA.push(1);
stkIntA.push(3);
stkIntA.push(5);
stkIntA.push(7);
stkIntA.push(9);
if (!stkIntA.empty())
{
int iSize = stkIntA.size(); //5
}