CS/Algorithm5 Vector - vector 는 자동으로 메모리가 할당되는 배열 이라고 생각하면 편하다. 또한 다른 STL들과 마찬가지로 template을 사용하기 때문에 데이터 타입은 자유롭게 사용가능하다. 중간에 값을 삽입할 수 있지만 결국 배열기반이므로 삽입과 삭제가 자주 일어난다면 비효율적이다. - vector를 사용하기 위해서는 헤더파일을 추가해야한다. vector v; // 이런식으로 선언한다. - 생성자 vector v; : // 비어있는 vector v 생성 vector v(5); // 0으로 초기화된 5개의 원소를 가지는 vector v 생성 vector v(5,1); // 1로 초기화된 5개의 원소를 가지는 vector v 생성 vector v1 = v2; // 기존의 vector v2를 복사해서 생성 * 연산자 .. 2021. 7. 2. Priority Queue 1. priority queue 우선순위 큐를 구현한 것. vector, deque와 붙어서 사용가능. default : vector container 기반 / 내림차순(less) 헤더파일 안에 구현되어 있음. 2. 생성자 템플릿으로 구현되어 있음. 따라서 내부 구조나 정렬기준을 변경할 수 있음. priority_queue pq; priority_queue pq; priority_queue pq; 3. 멤버함수 bool empty() const : empty(true) not(false) size_type size() const : return size const value_type & top() const : 맨 위의 원소를 참조 void push(const value_type& val) : 인자 삽입.. 2021. 7. 2. BFS / DFS (Binary Tree) 이런 정렬되지 않은 모양의 트리를 만들고 BFS, DFS를 구현해보려고 한다. BFS with queue #include #include #include using namespace std; class Node { private: Node* left; Node* right; Node* root; int val; public: Node() : val(0), left(nullptr), right(nullptr), root(nullptr) {}; Node(int _val) : val(_val), left(nullptr), right(nullptr), root(nullptr) {}; void SetLeft(Node* node) { this->left = node; } void SetRight(Node* node.. 2021. 7. 2. Set 1. set container - 연관 컨테이너 ( associative container) : 노드 기반 / 균형 이진트리 / 멤버 변수, 생성자 등이 유사 - key라고 불리는 원소들의 집합으로 이루어짐 ( key = 원소 ) - key는 중복 x - insert에 의해 삽입될 경우 자동으로 정렬 - default는 오름차순 - inorder traverseal 을 통해 출력가능 ( iterator는 자동으로 inorder traversal 순서대로 출력 ) 2. set 사용법 - set 변수명; ex) set s; set s; 3. set의 생성자와 연산자 - set s; // 기본 선언 - set s(pred); // pred를 통해 정렬기준 세움 - set s(s2); // s2를 복사한 s -.. 2021. 7. 2. Map 1) map container - 연관 컨테이너 ( associative container) : 노드 기반 / 균형 이진트리 / 멤버 변수, 생성자 등이 유사 - key, value가 쌍으로 저장되며 pair 객체 형태로 저장된다. - 노드 기반으로 균형 이진 트리 구조이다. - key는 unique 해서 중복되지 않는다. ( key 중복은 multimap에서 가능하다. ) - set 과 마찬가지로 삽입되면서 자동으로 정렬된다. ( key 기준, default는 오름차순이다. ) 2) 사용법 - 기본 생성 방법 : map 변수이름; - map 에 insert로 삽입하기 위해서는 pair 객체를 인자로 받아야함. ex) m.insert(pair (1,2)); 3) 생성자 & 연산.. 2021. 7. 2. 이전 1 다음