C++로 프로그램을 짤 때 유용한 STL들을 정리해 본당 ( 계속해서 추가해나갈 예정 )
STL( Standard Template Library)에는 STACK, QUEUE와 같은 자료구조나 여러
알고리즘들이 들어가 있어 프로그램을 짤 때나 알고리즘 대회에서도 유용하게 사용된다.
< STACK > : 맨 처음에 들어간 데이터가 맨 마지막에 나오는 자료구조 생성
헤더파일 : #include <stack>
stack <int> data : int 형 데이터를 담을 수 있는 data라는 이름의 스택 생성
data.push(1) : 스택 맨 뒤에 1을 삽입
data.pop() : 스택 맨 뒤에서 데이터 하나를 삭제
data.top() : 스택 맨 뒤에 있는 데이터를 반환
data.size() : 스택에 들어가 있는 데이터의 개수를 반환
data.empty() : 스택에 데이터가 비어 있으면 1을 반환, 데이터가 하나라도 있으면 0을 반환
- stack 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<int> data; // 스택 생성
data.pop(); // 스택의 맨 뒤 데이터 2 삭제
data.pop(); // 스택의 맨 뒤 데이터 1 삭제
cout << data.size() << endl; // 스택의 데이터 갯수 3출력
return 0;
}
|
< QUEUE > : 맨 처음에 들어간 데이터가 맨 처음에 나오는 자료구조 생성
헤더 파일 : #include <queue>
queue <int> data : int 형 데이터를 담을 수 있는 data라는 이름의 큐 생성
data.push(1) : 큐 맨 뒤에 1을 삽입
data.pop() : 큐 맨 앞에서 데이터 하나를 삭제
data.front() : 큐 맨 앞에 있는 데이터를 반환
data.size() : 큐에 들어가 있는 데이터의 개수를 반환
data.empty() : 큐에 데이터가 비어 있으면 1을 반환, 데이터가 하나라도 있으면 0을 반환
- queue 예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#include <iostream>
#include <queue>
using namespace std;
int main() {
queue<int> data; // 큐 생성
cout << data.front() << endl; // 큐의 맨 앞에 있는 데이터 출력
data.pop(); // 큐의 맨 앞에 있는 데이터 제거
data.pop(); // 큐의 맨 앞에 있는 데이터 제거
cout << data.front() << endl; // 큐의 맨 앞에 있는 데이터 출력
data.pop(); // 큐의 맨 앞에 있는 데이터 제거
cout << data.size() << endl; // 큐안에 들어 있는 데이터의 갯수 출력
return 0;
}
|
<VECTOR> : 데이터의 삽입과 삭제는 맨 위에만 가능하지만 기존 배열 처럼 모든 원소에 접근이 가능한 동적 배열 생성
헤더 파일 : #include <vector>
vector <int> data : data라는 이름의 int 형 데이터를 담을 수 있는 vector 생성
vector<int> data(10) : vector을 미리 10개의 index를 할당해 놓은 체로 생성(할당된 공간안애는 전부 0으로 초기화)
vector<int> data(10,2) : vector을 미리 10개의 index와 모든 할당된 index 안에 2를 할당해 놓은 체로 생성
data.push_back(1) : vector의 맨 뒤에 1을 삽입
data.pop_back() : vector의 맨 뒤에 있는 데이터를 삭제
data.front() : vector의 맨 앞에 있는 데이터 반환
data.back() : vector의 맨 위에 있는 데이터 반환
data.empty() : vector에 데이터가 비어있으면 1반환, 데이터가 하나라도 있으면 0 반환
data.size() : vector안에 들어가 있는 데이터의 개수를 반환
data.resize(4) : vector 의 전체 size를 4로 제설정 하면서 모든 index안의 데이터들을 0으로 초기화
data.resize(4,1) : vector 의 전체 size를 4로 제설정 하면서 모든 index안의 데이터들을 1로 초기화
data.clear() : vector의 크기를 0으로 설정
- vector 예제