- C++의 벡터는 동적 배열구조 클래스
- 자동으로 배열의 크기 조절과 추가 삭제 가능
- 모든 자료형에 대해 배열처럼 저장 가능 But 한번에 한 타입만 저장 가능
- 자바 벡터처럼 배열 크기 추가할 때, 기존 배열 크기의 100% 늘어남
vector<int> integer_vector;
vector<double> double_vector;
vector<char> char_vector;

- 벡터의 기본 함수
//iterator 반복자
begin()		 //beginning iterator 반환
end() 		//end iterato 반환
//추가 및 삭제
push_back(element) 		//벡터 제일 끝에 원소 추가
pop_back()		 //벡터 제일 끝 원소 삭제
//조회
[i] 		//i번째 원소 반환
at(i)		 //i번째 원소 반환
front()		 //첫번째 원소 반환
back()		 //마지막 원소 반환
//etc
empty()		 //벡터가 비어있으면 true 아니면 false 반환
size() 		//벡터 원소들의 수 반환
- 벡터와 배열의 차이 : 벡터는 동적으로 원소 추가 가능하며 크기가 자동으로 늘어남
- 깊이 우선 탐색(Depth First Search)에서의 벡터사용
#include <iostream>
#include <vector>
using namespace std;
int number = 9; //노드 수
int visit[9]; //방문한 노드
vector<int> a[10];
void dfs(int start) {
	if (visit[start]) {
		return; //방문한 경우 바로 빠져나옴
	}
	visit[start] = true; //방문했으니깐 1 넣기
	cout << start << " "; // 출력
	for (int i = 0; i < a[start].size(); i++) {
		//인접 노드 방문
		int x = a[start][i];
		dfs(x);
	}
}
int main(void) {
	//1과 2연결
	a[1].push_back(2);
	a[2].push_back(1);
	//1과 3연결
	a[1].push_back(3);
	a[3].push_back(1);
	//2와 4연결
	a[2].push_back(4);
	a[4].push_back(2);
	//4와 8연결
	a[4].push_back(8);
	a[8].push_back(4);
	//2와 5연결
	a[2].push_back(5);
	a[5].push_back(2);
	//5와 9연결
	a[5].push_back(9);
	a[9].push_back(5);
	//3과 6연결
	a[3].push_back(6);
	a[6].push_back(3);
	//3과 7연결
	a[3].push_back(7);
	a[7].push_back(3);
	dfs(1); //1에서 시작
	return 0;
}
'[알고리즘] 문제풀이 연습' 카테고리의 다른 글
| 백준 3052 - 나머지 : [c++ STL] set 이용 (0) | 2019.07.02 | 
|---|---|
| 2) 알고리즘 : 정렬 - 버블정렬(Bubble Sort) (0) | 2019.07.01 | 
| 1) 알고리즘 : 정렬 - 선택정렬(selection sort) (0) | 2019.07.01 | 
| [알고리즘 공부 계획] + 백준 5598 - OX퀴즈 풀이 (0) | 2019.07.01 | 
| 다이나믹 프로그래밍 DP 동적계획법 (0) | 2019.06.22 |