Programming/Tips(C++,C#)143 Chapter 5. 표준템플릿라이브러리 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 5.1 STL컴포넌트 1) 컨테이너 : 특정 타입의 원소들의 집합을 다루는데 사용. 2) 반복자 : 컬렉션 객체가 소유한 원소를 순회하기 위해서 사용. - 컬렉션 : 컨테이너의 전부or일부 집합. 다른 컨테이너 타입에 대해서도 공통의 인터페이스를 제공 3) 알고리즘 : 컬렉션 객체가 소유한 원소들을 처리하기 위함.(검색,정렬,수정 또는 다른목적으로 사용) - 반복자를 사용하면 알고리즘은 단 하나만 존재하면 됨. - STL의 기본 개념은 데이터와 동작을 구분하는 것에 의미가있음. - 컨테이너클래스(데이터관리), 알고리즘(동작), 이 둘을 연결하는 반복자 -> 모든 알고리즘이 모든종류의 컨테이너와 상호작용이 가능함 5.2 컨테이너 * 컨테이너의.. 2014. 10. 24. Chapter 4. 유틸리티 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. utility헤더에서 찾을 수 있음. 4.1 Pairs - 두 개의 값을 한 개의 단위로 관리하기 위해 제공. class가 아닌 struct임. 모든 멤버는 public. - 사용목적 : map/multimap등에서 key/value를 다루기 위해 사용하거나, 두 가지의 값을 반환하고자 하는 함수에서 사용. - Pairs의 값 비교는, first_value를 먼저 비교 후, second_value를 비교하여 동일 여부를 판단. 4.1.1. make_pair() - Pairs를 만들어주는 함수. 기존 코드에서는 std::pair(42,’@’);를 std::make_pair(42,’@’); 로 사 용가능해짐. 소스예제 #include #incl.. 2014. 10. 24. Chapter 3. 일반적인 개념 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 3.1 namespace std c++표준라이브러리 식별자 사용하는 방법 1) 명시적으로 namespace의 이름을 적어주는 방법 ex) std::cout #include 3.3 예외와 에러처리 3.3.1 기본클래스 base클래스 : exception클래스 1) C++을 지원하기 위한 예외 - bad_alloc : new연산 실패시, nothrow버전의 new은 제외 -> bad_alloc이 발생하기 전에 알아서 할당 실패가 발생;; - bad_cast : dynamic_cast 실패시 -> vc6.0에서 0xe06d7363 에러 발생한다. - bad_typeid : runtime시, 객체에 대한 실제 타입을 알아내기 위한 typeid연산 .. 2014. 10. 24. Chapter 2. C++와 표준 라이브러리 소개 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 2.2 C++언어의 새로운 특징 2.2.1 Template -하나 이상의 정해지지 않은 임의의 데이터 타입을 위해 작성된 함수 or 클래스. -> 타입을 인자로 전달할 수 있음 -컴파일을 위해 해당 타입에 대해 컴파일 되어 있을 것. -> 컴파일 과정 중에 어떤 자료형으로 호출될 지 결정 예) template inline const T& max(const T& a, const T& b) { return a>b? a: b; } 위와 같은 형태일 때, int a = 10; int b = 15; float c = 5.0; max(a,b); // OK max(a,c); // Error > 위 a,c에서 파라미터 T가 모호하다는 에러가 나온다. (E.. 2014. 10. 24. Windows7 에서 (Vista이상?) CAD(Ctrl Alt Del) 스크린의 메뉴 숨기는 방법 이 작업을 수행하게 된 계기는... 프로그램 실행시에 Ctrl + Alt + Del (이하 CAD)키의 입력을 막는 것에서 부터 시작되었음. 윈도우 XP까지는 DllInjection을 이용하여 CAD를 막을 수 있었는데. 7에서는 동작하지 않음. 찾아보니.. CAD는 키보드 입력 후킹을 해도 잡아낼 수 없는 녀석... 얘는 winlogon.exe가 가져가는 인터럽트. 윈 XP에서야 나도 같은 세션에 있으니 dll Injection이 가능했으나, 7부터 (정확하게는 Vista부터라 추측하지만, 비슷하에서 돌려보지 않았으므로, 7부터라 표기)는 권한이 없어서 쓰지 못한다. 하긴... 그도 그럴것이.. DllInjection자체는 매우 훌륭한 악성코드감염비법(?)이 될 수 있으니까. 여튼.. CAD를 막으려면.. 2014. 4. 7. 메모리 누수 발견시 참고 MSDN : http://msdn.microsoft.com/ko-kr/library/x98tx3cf.aspx http://support.microsoft.com/kb/151585/ko 메모리 누수 발견시.. 비주얼 스튜디오가 매우 친절하게 어느위치에서 누수가 발생한다고 알려준다. 그러나 VS2003이어서 그런가..? 좀 덜 잡아준다.. =_=;;;; 메모리 누수는 반드시 잡고 넘어가야 할 문제이므로.. 이 CRT라이브러리를 사용하면 된다. #define _CRTDBG_MAP_ALLOC #include #include 위 코드를 추가하여 주고, _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); 를 프로그램 시작할 때 걸어준 후, 프로그.. 2014. 3. 28. 이전 1 ··· 5 6 7 8 9 10 11 ··· 24 다음 728x90