전체 글 (353) 썸네일형 리스트형 [ALGORITHM] 이진 탐색(Binary Search) 이진 탐색(Binary Search)은 정렬된 데이터를 이분화하며 탐색하는 방법이다. 탐색하는 범위를 절반씩 줄여가며 원하는 데이터를 찾아간다. 즉, 순서대로 정렬된 데이터에서 탐색 범위를 반으로 나누어 중간에 위치한 데이터와 찾고자 하는 데이터를 비교한다. 그리고 원하는 데이터와 근접한 부분을 다시 탐색 범위로 지정하여 반복해 나간다. 1. 정렬된 데이터에서 찾고자 하는 데이터를 정한다. 2. 중간에 위치한 데이터 '7'과 찾고자 하는 데이터 '9'를 비교하여 준다. 3. '9'는 중간 데이터인 '7'보다 크기 때문에 탐색 범위를 '7'보다 크게 잡아준다. 4. 다시 지정한 탐색범위(8~9)에서 중간에 위치한 데이터인 '9'와 찾고자 하는 데이터가 일치하여 탐색을 종료한다. [C++] 컴파일 에러(Compile error)와 런타임 에러(Runtime error) 컴파일 에러(Compile error)는 보통 문법적인 오류로 인해 발생한다. 런타임 에러(Runtime error)는 실행 파일을 만든 후, 실행시킬 때 발생한다. 주로 잘못된 메모리 사용 등의 메모리 문제 또는 연결 List와 관련이 있다. (2019.12.16. 월요일 추가) 런타임 에러는 'warning'이 발생하여도 컴파일이 가능하다. [C++] extern extern은 다른 소스 파일에 선언된 전역 변수 또는 함수를 참조할 때 사용된다. extern을 사용함으로써 다른 파일에 해당 변수 및 함수가 선언되어 있다는 정보를 컴파일러에게 알려준다. 그리고 함수 선언에는 extern이 'default' 되어 있기 때문에 extern의 생략이 가능하다. 보통 소스 파일(.cpp)에 전역 변수를 선언한 다음, 헤더 파일(.h)에서 해당 변수를 extern 하고 다른 파일에 include 하여 사용한다. extern.h // extern.h // "extern.cpp"에 선언된 전역변수 'externTest'를 참조한다. // 따라서 "extern.h"를 include 하는 .cpp 파일은 모두 'externTest' 변수를 참조할 수 있다. extern int ex.. [C++] strncpy() strncpy는 문자열을 복사해주는 함수이다. strcpy와는 다르게 복사할 문자열의 크기를 지정할 수 있다. 함수를 사용하기 위해서는 "cstring" 또는 "string.h" 헤더 파일을 포함시켜주면 된다. char* strncpy(char* destination, cost char* source, size_t num) destination은 복사된 문자열을 저장할 변수이고, source는 복사해 줄 문자열 변수이다. 그리고 num은 복사할 문자열의 크기를 가리킨다. 이때, 지정한 num의 크기보다 작은 문자열을 복사하게 되면 나머지 공간에 '\0(널문자)'가 삽입된다. [C++] 오버로딩 (Overloading) 및 오버라이딩 (Overriding) 오버로딩과 오버라이딩은 C++에서만 지원한다. C에서는 지원하지 않는다. 오버로딩(overloading)은 메소드의 이름은 같으나, 매개변수가 다른 경우를 말한다. 즉, 메소드의 매개변수 개수, 타입 등을 달리하여 같은 이름의 메소드를 여러 개 정의할 수 있다. #include using namespace std; // 매개변수가 없는 overloading() 함수 정의 void overloading(){ cout [C++] malloc()-free() 와 new-delete malloc()과 new는 모두 동적 메모리 할당을 위해 사용된다. malloc()은 C 라이브러리에서 제공하는 함수로 "stdlib.h" 헤더 파일을 포함시켜주어야 한다. new는 cpp에서 제공하는 연산자이다. 또한 new로 메모리를 할당할 경우 생성자가 호출된다. [C++] 정적 할당(Static Allocation) 및 동적 할당(Dynamic Allocation) 메모리 할당이란 임의의 메모리 공간을 제공하여 사용할 수 있도록 해준다. '정적 메모리 할당'과 '동적 메모리 할당'으로 구분할 수 있다. 정적 할당(Static Allocation)은 프로그램에서 고정적으로 지정되는 메모리 부분으로, 프로그램이 실행될 때 해당 메모리의 크기가 결정된다. 선언함과 동시에 메모리 크기가 결정되며, 프로그램 중간에 그 크기를 변경할 수 없다. 또한 프로그램이 종료되면 자동으로 소멸된다. 보통 변수 선언 등이 포함된다. 동적 할당(Dynamic Allocation)은 프로그램 실행 중간에 허용 범위 내에서 메모리 공간을 자유롭게 지정할 수 있다. 원하는 만큼 메모리 크기를 할당받을 수 있으며, 프로그램 중간에 크기 변경도 가능하다. 하지만 할당받은 공간을 다 사용하거나, 프로.. [C++] 클래스 상속 (Class Inheritance) 상속은 새로 정의된 클래스가 기존 클래스의 멤버 변수 및 함수(method)를 이용할 수 있게 해 준다. 즉, 클래스를 상속하여 다른 클래스에서 해당 클래스의 재사용을 가능하게 해 준다. 이때 상속해주는 기존 클래스를 상위 클래스 또는 부모 클래스라고 부르며, 기존 클래스로부터 상속을 받는 새롭게 정의된 클래스를 하위 클래스 또는 자식 클래스라고 부른다. #include /****** superClass ******/ class Aircraft {// 상위 클래스(상속 해주는 클래스) private: bool isTakeOff; double battery; public: void takeOff(); void land(); void print(); void chargeBattery(double); }; /.. 이전 1 ··· 41 42 43 44 45 다음