⭐️Pointer types, void pointers 1. Pointer types - Strongly type 1) Pointer는 strongly type(강형 타입)입니다. int형 변수의 주소를 저장하고 싶다면, int* - 정수형 포인터 변수를 선언하여 저장해야 합니다. 2) Why do we need these strong types? 포인터는 주소를 저장하는 변수이므로 하나의 type. 즉, generic type으로 사용하면 되지 않을까? 3) 2번에 대한 Answer pointer 변수를 그저 주소를 저장하는데에만 쓰지 않고, 주소를 de-referencing하여 변수의 값을 access & modify하기 때문에 strongly type입니다. 자료형마다 사용하는 메모리의 양이 다르고..
CPP
[서론입니다 중요한 내용이 아니니 넘어가도 좋습니다 ㅎㅎ;] 더보기 대학교에서 들었던 첫 프로그래밍 강의는 C언어였습니다. 당시 프로그래밍 자체에 대해서 아는 것이 없는 소위 말하는 노베이스였기 때문에 이해에 시간이 오래걸렸던 기억이 납니다. 그 중 제일 힘들었던 것은 바로 Pointer과 동적 할당 부분이었는데, 이 때에는 수박 겉핥기 식으로만 알고 넘어갔습니다. 지금은 휴학을 하고 C++을 공부하고 있는 상황인데, C와 비슷한 부분이 많다보니 Pointer에 대해서 제대로 알고싶은 마음이 들었고, 공부를 조금씩 하기 시작했습니다. 하지만 ㅎ;; 역시나 Pointer의 벽에 부딫혀버렸고, &와 *를 어떤 식으로 써야하는지, 왜 메모리 누수가 일어나는지, 매개변수를 전달할 때에는 어떻게 해야 할지 헷갈려..
⭐️난이도 Silver 1 ⭐️문제 https://www.acmicpc.net/problem/1927 최소 힙을 구현하면 되는 간단한 문제이다! 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net ⭐️ 내 풀이 & Code 📌 C++에서는 priority_queue를 제공하므로 이를 이용하면 풀 수 있는 문제였다. #include #include #include #include #include #define INF 100000000 using namespace std; int n; // 연산의..
💡 map의 주요 인터페이스와 특징 1. 연관 컨테이너 중 자주 사용하는 컨테이너 2. 원소를 key와 value의 쌍(pair 객체)으로 저장 3. key는 해당 컨테이너에서 유일 (즉, 중복 key 허용 X) 4. 기본 정렬 방법은 less이며, key를 기준으로 정렬 5. set과 같은 인터페이스 멤버 함수를 제공하며 거의 유사 6. [] 연산자를 이용하여 key 값에 해당하는 value에 접근 -> 삽입 or 수정이 가능 7. insert()는 pair 객체를 인자로 받아 컨테이너에 저장 💡 생성자 1. 기본적인 방법 // pair객체의 first:key second:value map m; 기본 정렬 기준은 less로 설정되어 있어 세 번째인자로 정렬 기준을 따로 넣지 않는다면 정렬기준은 less..
💡 vector의 주요 인터페이스와 특징 vector 컨테이너는 대표적인 시퀀스 컨테이너로 배열과 비슷한 양상을 띄고 있습니다. 알고리즘 문제를 풀 때에 많이 사용되는 컨테이너 중 하나 입니다. 또한 vector는 시퀀스 컨테이너이기 때문에 원소의 저장 위치(순서)가 정해지며, 배열 기반 컨테이너이므로 원소가 하나의 메모리 블록에 할당됩니다. 시퀀스 컨테이너는 원소를 차례차례 추가하는 push_back()과 제거하는 pop_back() 연산과 첫 원소를 참조하는 front()와 마지막 원소를 참조하는 back() 연산 지정한 위치에 원소를 삽입할 수 있는 insert() 연산을 가집니다. vector의 경우 앞쪽이 막혀있는 형태이기 때문에 앞 쪽에서 원소를 추가/제거를 할 수 없으며, 뒷 쪽에서만 원소를..
💡 STL이란? STL은 표준 C++라이브러리의 일부분으로 Standard Template Library의 약자로써, 프로그램에 필요한 자료구조 & 알고리즘을 템플릿으로 제공하는 라이브러리입니다. 💡 컨테이너 컨테이너는 같은 타입을 저장, 관리할 목적으로 만들어진 클래스이며, 총 7가지 컨테이너 (vector, deque, list, set, multiset, map, multimap)를 제공합니다. 먼저 컨테이너는 크게 두가지로 나눌 수 있습니다. 1. 표준 시퀀스 컨테이너(standard sequence container) 컨테이너 원소가 자신만의 삽입 위치(or 순서)를 가지는 컨테이너를 말합니다. 원소를 해당 컨테이너에 삽입하면, 삽입되는 순서에 따라 원소의 위치가 결정되고 바뀌지 않습니다. ex..