Computer Security

#12 C++ STL 컨테이너 어댑터 라이브러리 본문

프로그래밍/C++

#12 C++ STL 컨테이너 어댑터 라이브러리

쿠리 Kuri 2022. 6. 23. 18:30

C++ STL 컨테이너 어댑터


1) STL 컨테이너 어댑터 라이브러리는 매우 활용도가 높은 자료구조를 제공한다.
2) 기존의 C언어를 이용하면 구현하기 까다로웠던 다양한 자료구조를 손쉽게 이용할 수 있다.


- Stack(스택)
- Queue(큐)
- Priority Queue(우선순위 큐)

 


C++ STL 컨테이너 어댑터: 스택 (후입선출)
C++ Stack STL은 다음과 같은 함수로 구성되어 있다.
- 추가: push(원소)
- 삭제: pop()
- 조회: top()
- 검사: empty() / size()

 

코드 예시

#include <iostream>
#include <stack> 
//스택 라이브러리 불러옴

using namespace std;

int main(void) {
	stack<int> s; //인트형 받고 s라하자.
	s.push(7); s.push(5); s.push(4); s.pop(); s.push(6); s.pop();
	//7넣고 5 넣고 4넣고 4빼고 6넣고 6빼고 남아있는건 7 5
	while (!s.empty()) { //!s.empty() 뜻은 안에 남아있는게 없을 때 까지 수행해라
		cout << s.top() << ' '; 
			s.pop(); //5뽑고 pop하고 , 7뽑고 pop하면, 남아있는게 없다! ->종료
	}
	system("pause");
}

 

결과 값

 


C++ STL 컨테이너 어댑터: 큐 (선입선출)
C++ Queue STL은 다음과 같은 함수로 구성되어 있습니다.
- 추가: push(원소)
- 삭제: pop()
- 조회: front() / back()
- 검사: empty() / size()

 

코드 예시

#include <iostream>
#include <queue>
//큐 라이브러리 불러오기
using namespace std;

int main(void) {
	queue<int> q;
	q.push(7); q.push(5); q.push(4); q.pop(); q.push(6); q.pop();
	//7들어가고 5 들어가고 4들어가고 7빼고 6들어가고 5빼서, 남아있는 건 4 6
	while (!q.empty()) {
		cout << q.front() << ' ';//앞에서부터 출력 즉,4부터 출력
			q.pop();
	}
	system("pause");
}

결과 값


C++ STL 컨테이너 어댑터: 우선순위 큐 (큰수부터 정렬되어 출력되는 시스템)

 

코드 예시

#include <iostream>
#include <queue>
//똑같이 큐 라이브러리 안에 있다.
using namespace std;

int main(void) {
	int n, x; //n,x 를 받는다.
	cin >> n;
	priority_queue<int> pq; //우선순위 큐를 pq라 정의
	for (int i = 0; i < n; i++) { cin >> x; pq.push(x); } 
	//x의 입력값들을 pq안에 넣는다. 이와 동시에 큰것부터 정렬
	while (!pq.empty()) {
		cout << pq.top() << ' '; //출력
			pq.pop();
	}
	system("pause");
}

 

결과 값


이로서,,, 그동안 C언어로 큐 스택 알고리즘을 사용하려면 코드가 꽤 길었는데 C++라이브러리를 이용해 매우 간편하게 이용 하게 되었다.

'프로그래밍 > C++' 카테고리의 다른 글

#14 C++ STL 연관 컨테이너 라이브러리  (0) 2022.06.25
#13 C++ STL 시퀀스 컨테이너 라이브러리  (0) 2022.06.24
#11 C++ 스마트 포인터  (0) 2022.06.22
#10 C++ 템플릿  (0) 2022.06.21
#9 다형성 기법 2  (0) 2022.06.20
Comments