목록전체 글 (225)
그냥 게임개발자
우리가 함수에 매개변수를 넣어 매개변수를 사용합니다. 근데 이와 같은 코드는 어떤가요? 값에 의한 호출 #include using namespace std; int add(int a, int b) { a += 10; cout
primitive타입 - byte, short, int, long, float, double, boolean, char reference 타입 - String, struct, class, int[], string[] 등
많이 사용하는 자료구조의 시간복잡도를 정리해보겠습니다. 자료구조 참조 탐색 삽입 삭제 배열 O(1) O(N) O(N) O(N) 스택 O(N) O(N) O(1) O(1) 큐 O(N) O(N) O(1) O(1) 연결리스트 O(N) O(N) O(1) O(1) 맵 O(logN) O(logN) O(logN) O(logN) 여기서 스택과 큐 같은 경우에는 가장 앞에 있는 요소를 참조한다고 하면 O(1)이지만 중간에 있는 요소면 스택과 큐는 순차접근이기에 O(N)이 걸립니다.

operator()는 C++에서 함수 호출 연산자라고 불립니다. 객체를 함수처럼 호출할 수 있게 해주는 연산자 오버로딩이라고 보시면 될 것 같습니다. 이 연산자를 클래스나 구조체에서 오버로딩을 함으로써 해당 타입의 객체에 대한 "호출 가능한 객체" 또는 "함수 객체"를 만들 수 있습니다. 이는 함수 객체나 우선순위 큐 정렬 등에 사용될 수 있습니다. 한마디로 기존에 존재하던 연산자들 있죠? =, ==, >, ++, 이러한 것들을 내가 원하는 다른 기능들로 커스텀 할 수 있다는 이야기입니다. 일단 원형부터 살펴보죠. class ClassName { public: 반환타입 operator()(매개변수) { // 구현 } }; 반환 타입은 함수 호출 시에 반환되는 데이터 타입입니다. 매개변수는 함수가 받아들일..

구조체(struct) 같은 자료구조를 넣어서 우선순위 큐를 만들 수 있습니다. 구조체를 일단 만들어보죠. #include #include using namespace std; struct Point { int y, x; Point(int _y, int _x) : y(_y), x(_x) {} Point() { y = -1; x = -1; } bool operator a.x; } }; int main() { priority_queue pq; for (int i = 1; i
#include #include using namespace std; int main() { priority_queue pq;// 오름차순 priority_queue pq2; // 내림차순 priority_queue pq3;// 내림차순 for (int i = 5; i >= 1; --i) { pq.push(i); pq2.push(i); pq3.push(i); } while (pq.size()) { cout

우선순위 큐! 이게 무슨 말이냐면요 우선순위를 넣을 수 있는 큐에요! 끄읕 아 진짴ㅋㅋㅋㅋㅋ 갑자기 피곤해서 글 쓰는게 귀찮아졌어요...ㅋㅋㅋ 제대로 설명을 드리자면 큐에 요소를 하나씩 담는데 우선순위를 부여할 수 있는 컨테이너를 말해요. 이렇게 큐에 요소들이 담겨있는데 9가 우선순위로 부여가 되어있어 우선순위가 낮은 요소보다 먼저 제공이 된다는 것이죠. 만약에 두 요소의 우선순위가 같으면 대기열에 포함된 순서에 따라 제공이 됩니다. 또 만약에 동일한 우선순위를 가지고 있는데 요소의 순서는 어떻게 정의가 되냐면 정의되지 않습니다. 그대로 유지에요. 우선순위 큐는 FIFO형태가 아닌 우선순위가 높은 요소가 먼저 나가는거에요. 우선순위 큐는 Heap을 통해 구현이 되는데요. 힙(Heap)? 힙은 우선순위 큐..

vector에 struct라는 타입을 넣고 정렬을 한 번 해보겠습니다. 참 구조체가 할 게 많아요. 좋은 애들.. 힘냅시다! #include #include using namespace std; struct point { int y, x; } bool Compare(const Point& a, const Point& b) { return a.x > b.x; } int main() { vector vec; for (int i = 10; i >= 1; --i) { vec.push_back( { i, 10 - i } ); } sort(vec.begin(), vec.end(), Compare); for (auto it : vec) { cout