c++19 Set, multiset, unodered_set, map, multimap, unodered_map set 은 이라는 헤더 파일을 가진다. std::set유형의 고유한 개체의 정렬된 집합을 포함하는 연관 컨테이너입니다 Key. 정렬은 키 비교 기능 Compare 를 사용하여 수행됩니다 . 검색, 제거 및 삽입 작업에는 로그 복잡성이 있습니다. 세트는 일반적으로 레드-블랙 트리 로 구현됩니다. Red-Black-Tree 란 binary-search-tree의 한 종류이다. 스스로 균형을 잡는 blanced tree이고 binary serch tree의 worst case의 단점을 개선시킨 트리이다. 모든노드는 black 아니면 red이다. nil노드는black이다. red노드는 연속하지 않는다. 임의의 노드에서 자손 nil노드까지 가는 경로의 black의 수는 같다 (자기자신은 카운트 제외) 위 같은 특.. 2022. 6. 9. stack queue 스택 큐 stack 은 헤더 파일로 을 가진다. Container를 사용자가 설정할 수 있고 default 값으로 deque을 가진다. 덱(deque)이란 STL 컨테이너 라이브러리 중 하나인 Deque(Double Ended Queue) 덱은 큐(Queue)와 비슷하지만 큐와 다르게 삽입과 삭제가 앞, 뒤 양쪽으로 모두 가능합니다. 덱의 삽입과 삭제는 양쪽 끝(앞, 뒤)에서 이루어진다. 크기가 가변적이다. 인덱스가 존재하기 때문에 임의의 원소에 접근이 가능하다. Stack은 LIFO(Last In First Out)의 특성을 가진다 말 그대로 마지막에 들어온게 제일 먼저 나간다는 뜻으로 해석하면 된다. 간단한 예제 코드를 확인해보자. Queue( 큐 ) Queue같은 경우 FIFO (First In First .. 2022. 6. 9. vector란 무엇 일까? c++ Vector란 무엇 일까? cppreference.com 에 검색을 해보자 std::vector is a sequence container that encapsulates dynamic size arrays. vector는 동적 사이즈 배열을 캡슐화하는 연속된 컨테이너입니다.라고 설명하고 있다 동적 사이즈 배열이란? 정적 배열처럼 크기가 정해진 배열이 아니라 요소를 추가하거나 제거할 수 있는 임의 액세스 가변 크기 목록 데이터 구조이다. 동적인 배열을 사용할 때 vector를 쓰는구나라고 유추할 수 있다. 자 그럼 동적 사이즈 배열을 연속되게 사용하는 것을 vector를 사용하지 않고 코드를 작성해 보자 #include #include using namespace std; int main() { int*.. 2022. 6. 1. Call by value Call by reference Call by address 정리c++ call by value : 값에 의한 전달 call by reference : 참조에 의한 전달 call by address : 주소에 의한 전달 Call by value : 값에 의한 전달 arg * arg 를 실행한뒤 num의 값은 100이 되었다 하지만 main() 함수에서의 num의 값은 그대로 10이다. 그 이유는 주소를 확인해 보면 알 수 있다. 서로 공유하는 주소 값이 다른 것 을 확인 할 수 있다. 이러한 경우를 값복사 Call By Value 라고 한다. 말 그대로 인자(num)의 값이 매개변수(Func)에 복사 된것을 말한다. Call By Reference 참조에 의한 전달 Call By Reference 참조에 의한 전달 위에 빨간줄이 있는 곳을 보면 인자값에 &앰퍼샌드가 있는 것.. 2022. 5. 22. 이전 1 2 3 4 5 다음