프로그래밍 공부
작성일
2023. 5. 28. 04:25
작성자
WDmil
728x90

STL에서의 AdapterContainer는 기존의 컨테이너를 감싸 다른 인터페이스를 제공하거나 기능을 확장하는 역활을 한다.

 

일반적으로 어댑터 컨테이너는 컨테이너를 수정하지 않고 사용자에게 다양한 기능을 제공하기 위해 사용한다.

 

다른 STL의 table과 다르게 선형으로 데이터를 저장하게 된다.

종류는 다음과 같다.

  • Stack
  • Queue

Stack

Stack 은 백터를 변형해서 stack형태로 만든 컨테이너 이다.

데이터를 선형으로 저장하게 되며, LIFO [후입선출] 방식을 사용한다.

#include <iostream>
#include <stack>

int main() {
	cout << "Stack" << endl;
    
	stack<int> stack;
    
	stack.push(1); // push adds a copy 복사되어 넣는다.
	stack.emplace(2); // emplace constructs a new object 새로운 객체를 생성해서 넣는 형태.
	stack.emplace(3); // 둘다 큰 차이는 없으나, push는 복사ㅡ emplace는 원본ㅡ 넣는 형태.
    
	cout << stack.top() << endl;
	stack.pop();
	cout << stack.top() << endl << endl;
}

Queue

Stack과 동일하게 데이터를 선형으로 저장하나, 값이 들어가면서 내림차순으로 정렬된다.

#include <iostream>
#include <queue>

int main() {
	cout << "Priority Queue" << endl;

	priority_queue<int> priorityQue;
		
	for (const int n : {1, 8, 5, 6, 3, 4, 0, 9, 7, 2})
		priorityQue.push(n);

	for (int i = 0; i < 10; i++)
	{
	cout << priorityQue.top() << endl;
	priorityQue.pop();
    }
}

 

728x90

'컴퓨터 용어 정리' 카테고리의 다른 글

Delta_Time  (0) 2023.06.21
Window API  (0) 2023.06.14
STL_AssociativeContainer  (0) 2023.05.28
STL_SequnceContainer  (0) 2023.05.28
제네릭 프로그래밍(Generic Programming)  (0) 2023.05.05