18 / 09 /12 (Day08 - 수요일)
날씨 좋아요.
<비쥬얼 스튜디오>
<Day08_STL>
- STL중 vector 사용법. -----> 복습요망.(간단한 vector 자체를 구현하기까지)
<MyVector class>
- Unreal에서는 무조건 Pascal ... 대문자부터시작..
함수는 동사로시작.
- C#에서는 Class이름은 파스칼, 변수명은 Camel casing
- Unreal Coding Standard 소개.
- http://egloos.zum.com/himskim/v/3895648 --> nullptr의 실체.
- 컨트롤 + F2 --> 북마크 하고 왔다갔다는 F2를 누르면된다.
- 1. Value에 자료가없으면
1-1. Value에 Size+1(1) 만큼 메모리 할당
1-2. Value = 0; (첫번째)에 자료 입력
2. Value에 자료가 있으면
2-1. Size+1 만큼 Temp에 임시 메모리 할당
2-2. 임시 영역에 Value값 저장. (메모리복사로 해결)
2-3. Value를 해제
2-4. 현재 크기(Size) +1
2-5. Value가 Temp의 영역을 가르키게 함
// 쉬는시간 //
<MyVector class 이어서>
- 메모리를 조금 포기하면서 성능을 최적화 시켜본다.
- 알고리즘의 최적화는 --> CPU vs RAM
- void MyVector::Erase(int DeleteIndex) 함수 설계 및 작성.
- Erase(10) 과 Erase(20)을했을때 밀리는 경우의 에러를 없애기 위해 find함수설계
- cpp가 없는것들은 .h가 뺀다 --> template가 대부분 그렇다.
// 쉬는 시간 //
<MyTemplate class 이어서>
- Template Class의 헤더에서 정의 할 때 ,inline에대한 고찰.
http://carstart.tistory.com/100 참고.
inline은 항상 헤더내에서 사용해야한다 (.cpp랑 따로 분리되어있을때)
비쥬얼스튜디오 컴파일러에선 클래스 내부 함수정의는 inline으로 자동적으로 바꿔주려한다.
길어지면 아닐 수 있다. --> 결론 : 컴파일러에 따라 다르겠지만 더 좋은 것으로 바꾸려한다.
---> 그래도 명시해주면 웬만하면 그걸로 쓰려한다 보면된다.
---> inline사용의 장, 단점을 파악하는게 더 좋다.
- 레퍼런스를 이용한 Swap함수
<MyVectorT class>
- int랑 float는 동작 제대로한다. -> string을 테스트해보면 왜 안될것인가????
- MyVectorT<MyVector*> MyVectorVector;
MyVectorVector.PushBack(new MyVector());
- Tree, Heap, map<stirng, string>--> Tree다. 등의 필요성...
- RedBlack Tree -> AVL트리?
- #include <set> --> 기본적으로 배열이지만 집합처럼... (1,2,3,4) 가있을때 또 4를 넣으면 4는넣을필요가 없다.
같은 의미로 언리얼에서 TSet이 존재..
https://www.zerocho.com/category/Algorithm/post/583cacb648a7340018ac73f1 -AVL트리 참고.
// 쉬는 시간 //
<MyVectorT class 이어서>
- 연산자 재정의 공부. (레퍼런스사용해서..) --> ex. class끼리의 더하기 등..
<해볼것 정리>
- 1. 다시 한번 구현해보기
2. 연산자 재정의 공부하기
3. 유투브 vector구현법과 비교해보기.
4. AVL트리와 RED-BLACK-TREE 공부해보기.
'NewStudy > Contents Of Class' 카테고리의 다른 글
18 / 09 / 14 수업내용 (0) | 2018.09.14 |
---|---|
18 /09 /13 수업내용 (0) | 2018.09.13 |
18/09/11 수업내용 (0) | 2018.09.11 |
18/09/10 수업내용 (0) | 2018.09.10 |
18/09/07 수업내용 (0) | 2018.09.07 |