C++ #11 STL 시퀀스 컨테이너

underlier12·2020년 2월 11일
0

C++

목록 보기
11/19
post-custom-banner

11. STL 시퀀스 컨테이너

STL 시퀀스 컨테이너 특징 및 종류

  1. STL 시퀀스 커네이너 라이브러리는 활용도 높은 자료구조 제공
  2. 기존 C언어로 구현하기 까다로운 다양한 자료구조를 이용하기 쉬움
  3. 가장 많이 사용되는 것은 벡터와 덱
  • Vector
  • Deque
  • List
  • Forward List

Deque

덱은 양 끝에서 데이터를 넣거나 뺄 수 있는 자료구조이다. 다음과 같은 함수를 포함한다.

기능설명
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");
}

Vector

벡터는 뒤쪽에서만 데이터를 넣거나 뺄 수 있는 자료구조이다. 배열처럼 사용하기에 적합하다는 점에 알고리즘 문제풀이에 활용된다. 앞뒤로 원소를 추가하는 경우보다 임의 원소에 접근해야 하는 경우가 많아 덱과 비교하여 성능적으로 효율적이다.

기능설명
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");
}
profile
logos and alogos
post-custom-banner

0개의 댓글