Coding/Basic Concept (C++) 2

Template / Function template / Class template

Template Template : 함수나 클래스를 정의할 때, 구체적인 자료형(data type)을 명시하지 않고, 이를 사용자가 정의한 자료형으로 대체할 수 있도록 하는 기능이다. 이를 통해 자료형에 독립적인 코드를 작성할 수 있어, 코드의 재사용성을 높일 수 있다. (여러 자료형으로 사용가능) template에는 두 가지 유형이 있다. 1. Function Template (함수 템플릿) 2. Class Template (클래스 템플릿) Function Template : 함수 템플릿을 사용하면 하나의 함수로 여러 자료형에 대응하는 함수를 만들 수 있다. 일반적으로 함수는 아래와 같이 정의한다. 아래 함수와 같이 정의하면 int 자료형에 대해서만 동작한다. double이나 float과 같이 다른 자..

Vector & Array

Vector & Array vector (class) vector를 생성하면 메모리 heap에 생성되며 동적할당된다. array와의 가장 큰 차이점은 array는 크기가 컴파일할 때 결정되므로 후에 원소를 추가하거나 삭제하는 것이 불가능하며 무조건 스택 메모리를 사용해야하지만, vector는 크기가 동적으로 변한다. 가변 크기의 데이터 컨데이너가 바로 vector이다. vector는 메모리를 재할당하는 데 용이하지만, 포인터를 통한 접근이기 때문에 속도가 느리다. vector를 사용해야할 case - 저장할 데이터의 개수가 정해지지 않은 경우(가변의 경우) - 데이터 접근의 랜덤 엑세스가 필요한 경우 - 중간에 데이터 삽입이나 삭제가 일어나지 않는 경우 배열 기반 컨테이너이기 때문에 push_front(..