STL 시퀀스 컨테이너
- STL 시퀀스 컨테이너 라이브러리는 매우 활용도가 높은 자료구조를 제공
- 기존의 C언어를 이용하면 구현하기 까다로웠던 다양한 자료구조를 손쉽게 이용할 수 있음
- 가장 많이 사용되는 시퀀스 컨테이너는 벡터(Vector)와 덱(Deque)
Vector(벡터), Deque(덱), List(리스트), Forward List(순방향 리스트)
덱
- 덱은 양 끝에서 데이터를 넣거나 뺄 수 있는 자료 구조
- PUSH_FRONT : 덱의 앞에 데이터를 삽입
- POP_FRONT : 덱의 앞에서 데이터를 꺼냄
- PUSH_BACK : 덱의 뒤에 데이터를 삽입
- POP_BACK : 덱의 뒤에서 데이터를 꺼냄
- INSERT : 덱의 특정 위치에 데이터를 삽입
#include <iostream>
#include <string>
#include <stdio.h>
#include <deque>
using namespace std;
int main(void) {
deque<int> d;
d.push_front(3); d.push_back(7); d.pop_front(); d.push_front(4);
for (int i = 0; i < d.size(); i++) { cout << d[i] << ' '; }
cout << '\n';
deque<int>::iterator iter;
iter = d.begin();
d.insert(iter + 1, 3, 5);
iter = d.begin();
d.insert(iter + 1, 1, 9);
for (int i = 0; i < d.size(); i++) { cout << d[i] << ' '; }
cout << '\n';
d.clear();
cout << d.empty() << '\n';
system("pause");
return 0;
}
벡터
- 벡터는 뒤쪽에서만 데이터를 넣거나 뺄 수 있는 자료 구조
- 배열처럼 사용하기에 적합하다는 점에서 알고리즘 문제풀이에서 가장 많이 사용됨
- 실제로 문제풀이에서는 앞뒤로 원소가 추가되는 경우가 적으며 임의 원소에 접근해야 하는 경우가 많아 덱 자료구조와 비교했을 때 일반적인 경우 성능적으로 더 효율적임
- PUSH_BACK : 벡터의 뒤에 데이터를 삽입
- POP_BACK : 벡터의 뒤에서 데이터를 꺼냄
- INSERT : 벡터의 특정 위치에 데이터를 삽입
#include <iostream>
#include <string>
#include <stdio.h>
#include <vector>
using namespace std;
int main(void) {
vector<int> v;
v.push_back(3); v.push_back(5); v.push_back(8);
vector<int>::iterator iter;
iter = v.begin();
v.insert(iter + 1, 3, 7);
for (int i = 0; i < v.size(); i++) {
cout << v[i] << ' ';
}
cout << '\n';
v.clear();
cout << v.empty();
system("pause");
return 0;
}
'C++' 카테고리의 다른 글
예외 처리 (0) | 2020.12.16 |
---|---|
STL 연관 컨테이너 (0) | 2020.12.16 |
STL 컨테이너 어댑터 (0) | 2020.12.16 |
스마트 포인터 (0) | 2020.12.16 |
템플릿 (0) | 2020.12.16 |