STL이란?

STL : Standard Template Library

종류

  1. Container Adapter(컨테이너 어댑터) : 기존 컨테이너의 인터페이스 중 일부만 제공하는 컨테이너
  2. Sequence Container(순차 컨테이너) : 자료를 순차적으로 저장하는 컨테이너
  3. Associative Container(연관 컨테이너) : 빠르게 검색할 수 있는 노드 기반 이진 트리 구조 (순서가 있음)
  4. Unordered Associative Container : 순서가 없는 연관 컨테이너

Vector

#include <vector>
vector <자료형> 이름;

자료의 길이를 변경할 수 있는 배열 (동적 배열처럼 이용 가능)

<aside> 💡 자주 쓰는 함수

  1. push_back(‘ ‘): 맨뒤에 원소 추가
  2. pop_back() : 맨뒤에 원소 삭제
  3. clear() : 배열 비우기
  4. size() : 사이즈 return

‼️ #include <vector> 에 내장된 pair //<utility>에 있지만 vector, algorithm에도 존재함

✔️ queue에 pair<자료형, 자료형>을 이용하면 key-value형태로 매핑하여 값 저장이 가능하다. ✔️ 값 추가 시 make_pair() 이용 ⇒ 선언 시 queue<pair<int, int>> q; ⇒ 값 할당 시 q.push(make_pair(1, 3));

</aside>

#include <iostream>
#include <vector>
using namespace std;
int main(){
	vector<int> v1;
	vector<int> v2;
	vector<int> v3 = {1,2,3,4,5};
	
	//push_back(' ')을 사용하면 가장 뒤에 데이터를 추가할 수 있다.
	vector<int> a = {1,2,3,4,5};
	a.push_back(6);  // [1,2,3,4,5,6]
	a.push_back(7);  // [1,2,3,4,5,6,7]
  
	//pop_back()은 가장 뒤에 데이터를 꺼내온다.
	a.pop_back();  // [1,2,3,4,5,6]

	//배열 비우기
	a.clear();

	//배열 처럼 인덱스를 사용해 자료에 접근
  for(int i=0; i<a.size(); i++){
		cout << a[i] << ' ';
	}
}

멤버함수

1. 배열 내 중복 원소 삭제하기

<aside> 📌 #include <algorithm> unique(v.begin(), v.end());

</aside>