본문 바로가기

전체 글

(58)
C++ 템플릿 1. 템플릿사용자가 원하는 타입을 지정하면 해당 타입의 형태의 물건이 나옵니다.데이터 형식이나 함수의 일반적인 모양을 정의하는데 사용하는데 템플릿은 코드 재사용성을 증가시킵니다.일반적으로 컴파일 타임에 타입 안정성을 보장합니다. ⇒ 컴파일 타임에 수행됩니다. 2. 함수 템플릿#include #include template T max(T& a, T& b) { return a > b ? a : b;}int main() { int a = 1, b = 2; std::cout 템플릿 함수도 마찬가지로 함수의 일반적인 버전을 제공하며, 호출 시 컴파일러가 타입을 결정합니다. 함수의 일반화된 선언을 의미합니다.  예시 Swaptemplate void Swap(T& a, T& b){ T temp; temp = a..
C++ 동적 할당 1. 동적 할당필요성동적 할당은 프로그램 실행 중 메모리를 동적으로 할당하고 해제하는 데 사용됩니다. 정적 할당(예시 : 배열)은 컴파일 시점에 크기를 결정하고, 프로그램이 실행되는 동안 크기를 변경하기 어렵습니다.유연한 크기의 자료구조 필요성프로그램 실행 중에 데이터 크기가 동적으로 변할 때, 동적 할당은 필수적입니다.자원 효율성정확한 메모리 양을 미리 예측하기 어려운 경우, 동적 할당은 자원을 효율적으로 사용할 수 있게 해줍니다. 메모리 영역동적 할당의 경우 메모리 영역에서 Heap 영역에 할당됩니다.프로그램 실행 중 (Runtime) 메모리를 동적으로 할당하고 해제하는데 사용되는 영역입니다. 종류C++에서 동적 할당은 new 와 delete 키워드를 사용하는 방식, 스마트 포인터를 사용하는 방식으로..
C++ 자료구조 구현 이중 원형 연결 리스트 구현에 앞서서..리스트 연결 최소 단위는 Node입니다.연결 리스트의 마지막 노드가 가장 첫 번째 head 노드를 가리켜야 합니다.조회, 삽입, 삭제 과정이 존재합니다. Node 구현template class Node{ // 1. Node는 prev, data, next 로 이루어져 있습니다.public: Node(Node* prev, T data, Node* next) : prev(prev) , data(data) , next(next) { } Node(T data) : prev(nullptr) , data(data) , next(nullptr) { } Node() : prev(nullptr) , data(0) , next(nullptr) { }public: Node* prev; int..