분류 전체보기(109)
-
inline 함수
2022.04.09 - [C++] - 매크로 매크로 함수의 장점 > 일반적인 함수에 비해 실행속도의 이점이 있다. 매크로 함수의 단점 > 정의하기 어렵다. 복잡한 함수를 매크로의 형태로 정의하는데 한계가 있다. 매크로 함수는 정의가 복잡하니 일반 함수처럼 정의가 가능할수 있게 할순 없을까? C++의 인라인 함수는 이러한 요구를 100% 만족한다. 인라인함수 inline int SQUARE(int x) { return x*x; } 하지만 인라인함수는 매크로 함수의 장점을 완전히 대체하진 못했다. #define SQUARE(X) ((X)*(X)) 위와 같이 매크로 함수가 정의되면 이는 자료형에 의존하지 않는다. 하지만 int형으로 정의된 함수를 자료형에 의존적일 수 밖에 없다. inline int SQUAR..
2022.04.09 -
매크로
#define을 이용해 다음과 같은 코드가 가능하다. #include using namespace std; #define PRINT_HELLO cout
2022.04.09 -
상수
변수 : 변할 수 있는 수 상수 : 변하지 않는 수 const 매크로 enum const 상수의 경우 실수로 값이 바뀌는 경우가 없어야 한다. float pi = 3.141562; float a = pi; float b = pi *= 2; //pi에 6.28312 저장됨. > 아래와 같이 const를 써 해결할 수 있다. const float PI = 3.141562;//상수는 일반적으로 대문자를 사용한다. float a = PI; float b = PI *= 2; //오류발생! const로 선언했기에 바꿀 수 없다! > const를 사용한 PI는 메모리 상에 직접 저장된다. 매크로 #define PI 3.141592//매크로 int main(void) { float a = PI; return 0; } ..
2022.04.09 -
루트 불변성
루트 불변성: 알고리즘이 타당한 이유를 쉽게 이해할 수 있도록 하기 위해 사용된다. 초기조건 : 루프가 첫 번째 반복을 시작하기 전에 루프 불변성이 참이어야 한다. 유지조건 : 루프의 반복이 시작되기 전에 루프 불변성이 참이었다면 다음 반복이 시작되기 전까지도 계속 참이어야 한다. 종료조건: 루프가 종료될 때 그 불변식이 알고리즘의 타당성을 보이는데 도움이 될 유용한 특성을 가져야 한다.
2022.04.07 -
삽입 정렬 - 1
크기가 작은 정렬에 효율적인 삽입 정렬을 이용해 정렬 문제를 풀기위해 문제를 다음과 같이 정의한다. 정렬하고자 하는 숫자를 key라고 한다. 그리고 원소가 n개인 배열을 입력으로 준다. 아래는 그림으로 삽입 정렬을 표현 한 것이다. 입력은 1부터 6까지 임의으로 섞여 있는 배열 A = {5, 2, 4, 6, 1, 3}이다. 그림은 배열 A = {5, 2, 4, 6, 1, 3}이고 배열의 index는 각 0 1 2 3 4 5이다. 주황색 사각형은 key값이고, 오른쪽으로 비교하기 시작한다. (d)를 예시로 둔다면 2 4 5 6 1 3 1. 6과 비교 (1이 작음) 2. 5와 비교 (1이 작음) 3. 4와 비교 (1이 작음) 4. 2와 비교 (1이 작음) 그 후 해당하는 index에 key에 해당하는 값을 ..
2022.04.06 -
자료구조
자료구조란 자료를 편리하게 접근하고 변경하기 위해 자료를 저장하거나 조직하는 방법을 말한다. 모든 목적에 가장 맞는 단일자료구조는 없다.
2022.04.06