본문 바로가기

main71

[C++]함수 템플릿, 클래스 템플릿 템플릿 템플릿(template)은 C++ 프로그래밍 언어의 한 기능으로, 함수와 클래스가 제네릭 형과 동작할 수 있게 도와준다. 함수나 클래스가 개별적으로 다시 작성하지 않고도 각기 다른 수많은 자료형에서 동작할 수 있게 한다. 이는 튜링 완전 언어로 볼 수 있다. 템플릿은 C++에서 프로그래머들에게 유용한데, 특히 다중 상속과 연산자 오버로딩과 결합할 때 그러하다. C++ 표준 라이브러리는 연결된 템플릿의 프레임워크 안에서 수많은 유용한 함수들을 제공한다. (제네릭 형 : 데이터 형식에 의존하지 않고, 하나의 값이 여러 다른 데이터 타입들을 가질 수 있는 기술에 중점을 두어 재사용성을 높일 수 있는 프로그래밍 방식이다.) 출처 : https://ko.wikipedia.org/wiki/%ED%85%9C%.. 2018. 3. 5.
[C++]함수 포인터 와 Class 함수 포인터 함수 포인터는 함수의 시작 주소 값을 가리키는 포인터 변수입니다. 함수 포인터 변수 형식 반환형 (*함수 포인터 변수 이름)(인수 목록); 의 형태를 가집니다. 코드로 보자면 다음과 같습니다. int func(int nData1, int nData2); int main() { int (*pFunc) (int, int) = nullptr; pFunc = &func; printf("%d \n", (*pFunc)(2,5)); return 0; } 위 코드를 보시면 반환형이 int형이고 인자로 int형 변수 2개를 받는 func() 함수가 있습니다. 그리고 이 함수를 가리킬 수 있는 함수 포인터 변수 int (*pFunc)(int , int)를 선언하고 nullptr로 초기화하였습니다. (포인터 변.. 2018. 2. 28.
[디자인 패턴]싱클톤 패턴(Singleton pattern) 싱글톤 패턴(Singleton pattern) 싱글톤 패턴은 프로그램이 시작될 때 최초 한 번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴입니다. 즉, 싱글턴 패턴은 클래스의 인스턴스 생성을 단 한 번으로 제한하여 사용하는 방식입니다. 싱글턴 패턴은 프로그램 내에서 공통적으로 쓰이는 자원을 관리, 저장하는 역할을 할 때 사용하거나, Connection pool, Thread Pool과 같은 공통된 객체를 여러 개 생성해서 사용해야 하는 경우에 많이 사용됩니다. (메모리, 리소스 등을 관리해야 하는 class를 싱클톤 패턴으로 만들어서 사용) 싱글톤 패턴은 class에 자기 자신을 static 멤버로 잡고, getInstance()라는 static 함수를 사용하여 자기 자신의 객.. 2018. 2. 28.
[C++]static 정적 변수와 Class static 정적 변수 static 정적 변수는 전역 변수의 성질과 namespace기능을 가진 변수입니다. static 정적 변수는 2가지 성질을 가집니다. 1.static 정적 변수는 프로그램이 시작될 때 메모리를 잡습니다. 즉, 프로그램이 시작될 때 정적 변수가 생성되고 초기화되며 프로그램이 종료할 때까지 존재합니다. (전역 변수의 성질) 2. static 정적 변수는 선언된 지역(scope)에서만 사용이 가능합니다. (지역 변수의 성질) void func(); int main() { func(); func(); func(); return 0; } void func() { static int nData = 0; nData++; printf("%d \n", nData); } func()라는 함수가 있.. 2018. 2. 27.
[자료구조]이진 탐색 트리(Binary Search Tree) 이진 검색 트리 이진 검색 트리란 이진 탐색과 연결리스트를 결하한 자료구조입니다. 이진 탐색의 효율적인 탐색 능력을 유지하면서 빈번한 자료 삽입과 삭제가 가능합니다. 이진 탐색의 경우 탐색에 소요되는 시간 복잡도는 O(logn)으로 빠르지만 자료 삽입, 삭제가 불가능하고, 연결리스트의 경우 자료 삽입, 삭제에 필요한 시간 복잡도는 O(1)로 효율적이지만 자료 탐색에 필요한 시간복잡도는 O(n)이 됩니다. 이 둘을 결합하여 효율적으로 자료 탐색 및 자료 삽입, 삭제를 가능하게 하는 것이 이진 검색 트리입니다. 이진 검색 트리의 속성 ▶ 각 노드에 값(데이터)과 키가 존재하며, 키 값은 모두 달라야 한다. ▶ 노드의 왼쪽 서브트리에는 그 노드의 키 값보다 작은 값들을 지닌 노드들로 이루어져 있다. ▶ 노드의.. 2018. 2. 27.