풀이는 여기저기 많으니까.. 하나 하나 풀 때마다 하나씩 적겠음 2011년 2월 8일 0번 문제의 url : http://www.pythonchallenge.com/pc/def/0.html level0 : 274877906944 level1 : ocr level2 : equality level3 : linkedlist level4 : peak 2011년 2월 9일 level5 : channel 아오 플젝이 바빠져서 당분간 쉬어야겠다 ~_~ 빨리 끝내고 다시 시작해야지
클래스를 주고 받을땐 레퍼런스를 사용하자!! 클래스 전체를 call by value로 넘긴다면 그 메모리는 어머어머하지만 레퍼런스로 넘기게 되면 겨우 포인터 변수의 크기 만큼만 넘기고 끝이다. 예를 들어서 AddPoint(POINT point); 라는 Method가 있다면 AddPoint(const POINT &point); 가 나을 것이다. (const는 적절히 써주자) 물론 호출한 놈의 인스턴스가 사라지지 않는 것이 확실히 될 때 얘기다.
http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNo=20&no=829244&ref=829244 나는 분기문을 좀 싫어한다 -.-;; 뭔가 소스가 길어지는 느낌이라서.. 예를 들어 단순히 form열기 같은 것을 하는데 switch문으로 길게 늘리는게 뭔가 안깔끔해 보인다. switch(nIndex) case: 0 Form1열기 case: 1 Form2열기 case: 2 form3열기 이걸 간결히 해주기 위해 아래처럼 쓸 수 있다. Form arFrom[3]; arForm[0] = Form1; arForm[1] = Form2; arForm[2] = Form3; arForm[nIndex].폼열기 이걸 다른 곳에도 응용해 보면, 입력한 숫자에..
상속한 클래스를 넘겨 줬을 때 해당 클래스의 자료형이 뭔지 정확히 알기 위해 사용한다. 컴파일 시에 RTTI를 사용하여 컴파일 하면 vtable을 사용 할 수 있다. vtable은 가상 함수 테이블인데 아래의 소스를 함 보자. class Parent{ public: virtual void func(Parent obj); }; class Child : public Parent{ public: virtual void func(Parent obj); }; 이런 클래스가 있을 때 Parent p; Child c; p.func(p); p.func(c); 이렇게 하면 함수 func에서는 인자로 들어온 Parent obj에 대하여 이것이 Child인지 Parent 인지 알 길이 없다. 자바에서는 걍 p.getClas..
dynamic_cast const_cast reinterpret_cast static_cast A가 B의 superclass일 때 A* a; B* b = new B(); a = (A *)b; 이거는 dynamic_cast(b);와 같음 dynamic_cast는 safe함. 서브->슈퍼 캐스팅은 상관 없지만 슈퍼->서브 캐스팅은, C style로 캐스팅하면 캐스팅이 되긴 하지만, 참조 할 수 없는 멤버를 참조 하려 하면 런타임 에러가 발생함. dynamic_cast를 이용하면 서브->슈퍼 일때만 캐스팅 하고 아닐 대는 null을 참조함. 따라서 null 체크를 통해 런타임 에러를 방지할 수 있다. 덧, 포인터로 선언한 클래스 일때만 된다. Parent *p1 = new Child; Parent *p2 = ..
예를 들어 인자가 한개 달린 생성자만을 갖고 있는CDevice 라는 class가 있다고 했을 때 class CDevice{ public: CDevice(int a); }; 이 CDevice를 다른 클래스에서 멤버 변수로 사용할려면 어찌 해야 할까? 자바의 경우는 걍 class CObject{ public CDevice mDevice = new Device(n); public CObject(){ } }; 해주면 되겠지만.. C++(/MFC)은 그렇지 않다.. 물론 포인터로 선언해 준다면 저런식으로 해주면 좋겠지만 일반 멤버 변수로 생성자를 가지도록 변수 생성을 할려면 어떻게 해야할까 class CObject{ public: CDevice m_Device; CObject(); } CObject::CObjec..
Vector 사용법 #include #include using namespace std; int main() { int i; int num =10; vector vi; for(i = 0;i < num;i++) { vi.push_back(i*2); //vi[i] = i*2; } for(i = 0;i < num;i++) { printf("vi[%d] = %d\n",i,vi.at(i)); //vi[i]도 됨 } printf("size of vector : %d\n",vi.size()); return 0; } List 사용법 #include #include using namespace std; int main() { list li; int i; for(i = 0;i < 5;i++) { li.push_back(i..
- Total
- Today
- Yesterday
- 리눅스
- NDK
- 드라이버
- it
- algorithm
- winapi
- MFC
- java
- source
- db
- Python
- C
- Visual C++
- android
- Quiz
- driver
- 음악
- 프로그래밍
- jni강좌
- kering
- jni
- API
- AWS
- C++
- database
- Cloud
- linux
- 안드로이드
- gcc
- Troubleshooting
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |