📌 etc/C++
C++ / 연결 리스트
#pragma once // 노드 구조체 템플릿 template struct Node { T data; Node* prevNode;// 이전 노드의 주소 Node* nextNode;// 다음 노드의 주소 Node() : data() , prevNode(nullptr) , nextNode(nullptr) { } Node(const T& data, Node* prevNode, Node* nextNode) : data(data) , prevNode(prevNode) , nextNode(nextNode) { } }; // 리스트 클래스 템플릿 template class LinkedList { private: Node* headNode; // 연결 리스트의 맨 앞의 노드 Node* tailNode; // 연결 리..
C++ / 동적 배열
#pragma once #include "assert.h" // 동적 배열 클래스 템플릿 template class DynamicArray { private: T* adress;// 배열의 첫번째 인덱스 주소 int dataCount; // 배열에 저장된 요소의 개수 int maxCount; // 현재 배열에 저장할 수 있는 최대 요소의 개수 public: void push_back(const T& data); void resize(int size); T& operator [] (int index); public: DynamicArray(); ~DynamicArray(); }; template DynamicArray::DynamicArray() : adress(nullptr) , dataCount(0) ..
C++ / 포인터
// 포인터 변수 앞의 자료형은 특정 변수의 주소에서 얻은 값을 해석하는 단위이다. // 다음의 경우는 short(2byte) 타입의 변수를 int 즉, 4바이트의 단위로 값을 해석하겠다는 의미이다. short s = 100; int* ptr = (int*)&s; // 배열이란 메모리가 연속적으로 배치되어있는 자료구조이다. // 포인터 배열의 경우 포인터를 1증가시키면 실질적으로는 포인터 변수의 자료형의 크기에 따라 주소값이 증가한다. // 즉 char형일 경우에는 1byte, short 형일 경우에는 2byte, int 형일 경우에는 4byte 씩 증가한다. int arr = {1, 2, 3, 4, 5}; int* ptr = arr;// 배열의 이름은 해당 배열의 시작 주소를 나타냄(arr = arr[..
C++ / Visual Studio 단축키
// 유용한 Visual Studio 단축키 // 지정한 구문 주석 처리 : Ctrl + k, c // 지정한 구문 주석 해제 : Ctrl + k, u // Alt + Drag // 디버깅 시작 : F5 // 다음 중단점까지 코드 실행 : F5 // 디버깅 중단점 생성 및 해제 : F9 // 디버깅 중, 구문 수행 : F10 // 디버깅 중, 구문 수행(함수 진입, 좀 더 섬세한 작업 가능) : F11 // 디버깅 중, 디버깅 종료하기 : Shift + F5