C++
-
참조형 관련@ 16. 1 ~ 17. 1/C++ 2014. 6. 30. 22:36
참조형은 대부분 함수 / 메서드의 파라미터 이다 이유는? 값에 의한 전달이 아닌 원본 자체가 넘겨지는 참조에 의한 전달을 할 수 있기 때문에.. 아래와 같은 함수가 있다면 void swap(int &first, int &second) 함수는 아래처럼 사용한다. int x=5, int y=6; swap(x,y) 보통의 참조형 변수를 상숫값으로부터 초기화할 수 없듯이 참조형 파라미터의도 상숫값을 인자로 못받음. 아래는 안됨 swap(5,6); 만약 포인터로부터의 참조라면.. 함수의 인자로 사용할 변수가 포인터이고 위의 swap함수를 사용한다면. int x=5, int y=6; int *xp=&x, int *yp=&y; swap(*xp, *yp); 이렇게 하면 된다. 그리고 되도록이면 파라미터를 참조형으로 하..
-
일차원 운동@ 16. 1 ~ 17. 1/기초수학과 물리 2014. 5. 27. 00:12
등속도 운동의 이동거리 속도 V가 일정할 때, 변위 = 속도*시간(D=v*t) * 프레임 사이의 변위 시간이 1프레임일때 (통상 1/30초) 새위치 = 이전위치 + 속도 * 시간(1/30) 평균속도 임의의 변위와 시간 간격 t가 주어질때 v = x2 - x1 / t (x2 : 이동후 위치, x1 : 이동전 위치) 가속도는 초기시간 t1에 순간속도 v1를 가지고 있는 상태에서 몇 초 후 t2에 순간속도 v2의 속도의 변화율로 정의된다. a(가속도) = v2 - v1 / t2 - t1 * 계산하기전 속도의 단위와 시간의 단위가 일치하는지를 확인해야한다. 예를 들어 속도의 단위가 mi/h인데 초로 나누는것은 안맞다. 초나 시간 둘중에 하나로 단위로 맞춰야함..
-
Tip : 생성자 초기화 리스트와 생성자 바디에서의 초기화 차이@ 16. 1 ~ 17. 1/C++ 2014. 4. 26. 12:27
C++에서 객체를 생성할 때는 생성자를 호출하기 전에 모든 데이터 멤버들이 먼저 생성되어 메모리에 할당된 상태여야 한다. 이때 객체타입인 데이터 멤버는 생성자가 호출되고 기본 타입들은 그 데이터가 할당된 메모리에 남아 있는 임의의 값을 가지게 된다. 생성자 초기화 리스트는 이러한 과정에서의 멤버에 대한 생성자 호출과 기본 타입 데이터의 초깃값을 선택할 수 있게 해준다. *데이터 멤버 클래스가 디폴트 생성자를 제공하지 않는다면 반드시 생성자 초기화 리스트를 이용해서 그 멤버 클래스의 명시적인 생성자를 호출해 주어야 한다. 예를 들어 class A { public: A(double a); }; 있고(디폴트 생성자는 없음 명시적인 double 타입 생성자만 있다) 다음에는 이 클래스를 데이터 멤버로 가진 다른..
-
열혈강의 C++(잊어버린 부분 정리 1)@ 16. 1 ~ 17. 1/C++ 2014. 4. 6. 23:45
1. 배열의 선언과정에서는 호출할 생성자를 별도로 명시하지 못한다.(생성자에 인자를 전달하지 못한다) SoSimple* ptrArr=new SoSimple[10]; 위의 형태로 배열이 생성되려면 다음 형태의 생성자가 반드시 정의되어야 한다. SoSimple() { . . .} 그리고 일일이 초기화의 과정을 별도로 거쳐야 한다. 2. 멤버 이니셜라이저에서는 this포인터를 사용할 수 없다. 3. 복사생성자의 매개변수 선언에서 const는 필수가 아니다 그러나 참조형의 선언을 의미하는 &는 반드시 삽입해야한다. 4. 복사생성자의 호출시점 1) 기존에 생성된 객체를 이용해서 새로운 객체를 초기화하는 경우 2) call - by - value방식의 함수호출 과정에서 객체를 인자로 전달하는 경우 3) 객체를 반환..
-
AVL 이진트리(개념설명)@ 16. 1 ~ 17. 1/자료구조 2014. 2. 18. 21:53
이진 탐색트리가 자동으로 균형을 잡을 수 있도록 개선된것이 AVL 트리 균형인수 = 왼쪽 서브트리의 높이 - 오른쪽 서브트리의 높이 균형인수의 절댓값이 2이상인 경우에 균형을 잡기위해 트리의 재조정을 진행한다. LL회전 자식 노드 두개가 왼쪽으로 연이어 연결되어 부모의 균형인수가 2가 되는 것 3 2 1 이런경우를 말하고..LL회전을 거치면 2 1 3 이렇게 된다. 2를 중심으로 오른쪽으로 3이 돌면됨.. RR은 그와 반대로.. 3 2 1 RR회전을 거치면 2 3 1 이런식으로 된다. LR과 RL도 있는데 우선 LR의 경우 1 2 3 이런식을 말하고.. 우선 LR상태에서 한번의 회전으로 균형이 잡히는 LL이나 RR로 바꾼다 LR상태에서 RR회전을 하면 LL상태가 된다. 2, 3을 먼저 떼어서 RR회전을 ..