[C++] stack & queue & deque & priority_queue

Featured image for [C++] stack & queue & deque & priority_queue

map이 pair로 구현가능했다면 stack, queue, deque는 linked list로 구현 가능하다. 1. stack LIFO(Last In First Out)의 특성을 가진 자료 구조다. c++의 stack에는 clear() 메서드가 없는 관계로 초기화를 위해선 다음과 모든 요소를 pop()한다. 2. queue 선입선출(FIFO, First In First Out)을 지닌 자료 구조. 3. deque 앞뒤로 삽입, 삭제, 참조가 가능한 자료구조. 4. priority queue 우선순위 큐는 … 더 읽기

[C++] set & multiset

Featured image for [C++] set & multiset

https://luv-n-interest.tistory.com/964 1. set std::map과 std::set은 둘 다 C++의 Standard Template Library (STL)에 속하는 컨테이너입니다. 그러나 각각이 사용되는 목적과 저장하는 데이터의 형태가 다릅니다. 따라서 이 두 컨테이너의 사용 예시: set의 저장된 데이터는 자동적으로 정렬됩니다. 출처 : chatgpt-4.0 2. multiset 정렬은 한다. 단 중복을 허용한다.

[C++] map & unordered_map

Featured image for [C++] map & unordered_map

0. 참고자료 https://ldgeao99.tistory.com/379 네이버 블로그 당신의 모든 기록을 담는 공간 pair로 map을 구현했다는 것을 알 수 있다. 2. map 가. 예제 1 1) insert() 2) size() 3) find() 못 찾을 경우 mp.end()에 해당하는 iterator를 반환한다. map의 경우 해당 인덱스에 참조만 해도 맵에 값이 생기며 맵의 요소가 생기게 된다. int형 같은 경우 0으로. string 같은 경우 … 더 읽기

[C++] 자료구조 시간복잡도 정리

Featured image for [C++] 자료구조 시간복잡도 정리

1. 랜덤접근과 순차적 접근 출처 : https://ko.m.wikipedia.org/wiki/파일:Random_vs_sequential_access.svg vector, Array와 같은 배열은 랜덤접근이 가능해서 k번째 요소에 접근할 때 O(1)이 걸리며 연결리스트, 스택, 큐는 순차적 접근만이 가능해서 k번째 요소에 접근할 때 O(k)이 걸립니다. 참조를 많이 하는 것은 배열로 하는 것이 좋다. 데이터 추가와 삭제를 많이 하는 것은 연결 리스트가 배열보다 유리하다. 2. 자료구조 시간복잡도 정리 다양한 C++ … 더 읽기

[C++] Linked list

Featured image for [C++] Linked list

  1. 연결 리스트 요소가 인접한 메모리 위치에 저장되지 않는 선형 데이터 구조다. 데이터를 감싼 노드를 포인터로 연결해서 공간적인 효율성을 극대화시킨 자료 구조다. 인접한 메모리 위치에 저장되지 않아서 공간 효율성이 높지만 반대로 인접한 메모리 위치에 저장되지 않기 때문에 순차적 접근이 강제된다. 이에 검색에 있어서 O(n)만큼의 시간이 소요된다. 연결리스트는 싱글연결리스트, 이중연결리스트, 원형싱글연결리스트 그리고 원형이중연결리스트 등이 있다. … 더 읽기

[C++] vector & arrray

Featured image for [C++] vector & arrray

1. vector https://cplusplus.com/reference/algorithm/find/ vector도 처음부터 크기를 정해서 특정한 값으로 초기화할 수 있다. 이를 벡터의 정적인 할당이라고 한다. 2. Array 23년 8월 31일 추가 2차원 배열을 매개변수로 할 때는 다음 두 가지 중 하나의 형태로 선언한다. 23년 11월 15일 추가 C++에서는 표준 배열에 대하여 .size나 .length() 같은 멤버 함수를 제공하지 않는다. 굳이 배열의 크기를 구하기 위해선 … 더 읽기

[C++] unique

Featured image for [C++] unique

1. unique() unique는 중복되는 요소를 제거하고 나머지 요소들은 삭제하지 않고 그대로 둔다. 중복되지 않는 요소 중 마지막 요소 다음 이터레이터를 반환한다. 일반적으로 원하는 결과를 위해서는 미리 정렬되어 있어야 한다. unique를 정상적으로 수행하기 위해서는 위의 방식을 기억해 두자.

[C++] sort

Featured image for [C++] sort

1. sort() `sort(first, last, *커스텀비교함수)`다. first는 포함되고 last는 포함되지 않는다. 시작점 주소와 마지막 주소 + 1을 넣거나 쉽게 iterator.begin()과 iterator.end()를 넣으면 된다. 커스텀비교함수는 옵션이다. greater가 내림차순이고 less가 오름차순으로 정렬한다. 23년 9월 5일 추가 나. stable_sort cmp 함수에서 seq를 사용할 때, 같은 빈도수를 가진 값들 사이의 순서를 올바르게 유지하기 위해 seq[a] <= seq[b]로 설정했다. 하지만 이러한 … 더 읽기

[C++] fill, memset, memcpy

Featured image for [C++] fill, memset, memcpy

1. fill() 끝값은 포함하지 않고 초기화합니다!!! 2. memset() memset은 fill과는 다르게 바이트 단위로 초기화를 수행한다. 0, -1, char형의 문자 하나로 초기화 할 수 있다. (2의 보수 표기법에 따라서 11111…은 -1이 된다.) 0 또는 -1이란 값으로 초기화할 때는 memset을 사용하는 것 추천한다. 3. memcpy call by value로 복사하고 싶을 때 사용한다.