Algorithm(127)
-
[C++] stack & queue & deque & priority_queue
map이 pair로 구현가능했다면 stack, queue, deque는 linked list로 구현 가능하다. 1. stack #include #include using namespace std; stack stk; int main(){ stk.push("엄"); stk.push("준"); stk.push("준"); stk.push("식"); stk.push("시.."); while(stk.size()){ cout
2023.07.09 -
[C++] set & multiset
STL 셋, 집합, set 사용법 [C++] set를 알아보자 set란 Sets are containers that store unique elements following a specific order. ++기본적으로는 오름차순으로 정렬된다. 집합과 같다. 같은 원소는 존재하지 않고 정렬되어있는 컨테이너를 말한다. luv-n-interest.tistory.com 1. set std::map과 std::set은 둘 다 C++의 Standard Template Library (STL)에 속하는 컨테이너입니다. 그러나 각각이 사용되는 목적과 저장하는 데이터의 형태가 다릅니다. std::map : std::map은 키-값 쌍을 저장하는 연관 컨테이너입니다. : 각각의 원소는 키와 값의 쌍으로 구성되며, 이 컨..
2023.07.09 -
[C++] map & unordered_map
0. 참고자료 (24) C++ map헤더의 map 사용법 용도 : pair가 그냥 두 자료형을 묶는 거라면, map은 왼쪽의 값을 key값으로 사용하고, 오른쪽의 값은 value값으로 사용한다. key와 value를 가지는 노드를 생성해서 정렬된 '트리형태'로 저장해두어 탐 ldgeao99.tistory.com [C++] pair, map, tuple 완정 정복 (20/7/9 수정) 업데이트 내역 - 20/6/15 : 최초 작성 - 20/7/9 : unordered_map 추가 pair pair란 두 객체를 하나의 객체... blog.naver.com pair로 map을 구현했다는 것을 알 수 있다. 2. map 가. 예제 1 #include #include using namespace std; map ..
2023.07.09 -
[C++] 자료구조 시간복잡도 정리
1. 랜덤접근과 순차적 접근 출처 : https://ko.m.wikipedia.org/wiki/파일:Random_vs_sequential_access.svg vector, Array와 같은 배열은 랜덤접근이 가능해서 k번째 요소에 접근할 때 O(1)이 걸리며 연결리스트, 스택, 큐는 순차적 접근만이 가능해서 k번째 요소에 접근할 때 O(k)이 걸립니다. vector, Array → 랜덤접근 → O(1) linked list, stack, queue → 순차적 접근 → O(n) 참조를 많이 하는 것은 배열로 하는 것이 좋다. vector, Array → 삽입, 삭제 → O(n) linked list, stack, queue → 삽입, 삭제 → O(1) 데이터 추가와 삭제를 많이 하는 것은 연결 리스트가 배..
2023.07.09 -
[C++] Linked list
1. 연결 리스트 요소가 인접한 메모리 위치에 저장되지 않는 선형 데이터 구조다. 데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화시킨 자료 구조다. //sigle list의 node class Node { public: int data; Node* next; Node(){ data = 0; next = NULL; } Node(int data){ this->data = data; this->next = NULL; } }; 인접한 메모리 위치에 저장되지 않아서 공간 효율성이 높지만 반대로 인접한 메모리 위치에 저장되지 않기 때문에 순차적 접근이 강제된다. 이에 검색에 있어서 O(n)만큼의 시간이 소요된다. 연결리스트는 싱글연결리스트, 이중연결리스트, 원형싱글연결리스트 그리고 원형이중연결리스트..
2023.07.09 -
[C++] vector & arrray
1. vector #include #include using namespace std; vector v; int main(){ for(int i=1; i
2023.07.09 -
[C++] sort
1. sort() `sort(first, last, *커스텀비교함수)`다. first는 포함되고 last는 포함되지 않는다. 시작점 주소와 마지막 주소 + 1을 넣거나 쉽게 iterator.begin()과 iterator.end()를 넣으면 된다. 커스텀비교함수는 옵션이다. #include #include #include using namespace std; //sort(first, last, *커스텀비교함수) vector a; int b[5]; int main(){ for(int i=5; i>=1; i--) b[i-1] =i; for(int i=5; i>=1; i--) a.push_back(i); //ascending order default sort(b, b+5); sort(a.begin(), a.e..
2023.07.08 -
[C++] fill, memset, memcpy
1. fill() #include #include // std::fill using namespace std; int a[10]; int b[10][10]; int main(){ fill(&a[0], &a[10], 100); for(int i = 0; i
2023.07.08