덱은 양 끝에서 데이터를 넣거나 뺄 수 있는 자료구조이다. 다음과 같은 함수를 포함한다.
기능 | 설명 |
---|---|
PUSH_FRONT | 덱의 앞에 데이터를 삽입 |
POP_FRONT | 덱의 앞에서 데이터를 추출 |
PUSH_BACK | 덱의 뒤에 데이터를 삽입 |
POP_BACK | 덱의 뒤에서 데이터를 추출 |
INSERT | 덱의 특정 위치에 데이터를 삽입 |
#include<iostream>
#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");
}
벡터는 뒤쪽에서만 데이터를 넣거나 뺄 수 있는 자료구조이다. 배열처럼 사용하기에 적합하다는 점에 알고리즘 문제풀이에 활용된다. 앞뒤로 원소를 추가하는 경우보다 임의 원소에 접근해야 하는 경우가 많아 덱과 비교하여 성능적으로 효율적이다.
기능 | 설명 |
---|---|
PUSH_BACK | 덱의 뒤에 데이터를 삽입 |
POP_BACK | 덱의 뒤에서 데이터를 추출 |
INSERT | 덱의 특정 위치에 데이터를 삽입 |
#include<iostream>
#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");
}