본문 바로가기

Programming/Tips(C++,C#)142

chapter 1. COM을 위한 기초클래스 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 1. 구조체와 클래스 *인터페이스 : 서로 다른 객체를 연결하는 연결고리 -인터페이스 키워드 #define interface struct * COM규약에서 정한 하나의 규정 이진 표준을 따라야 함 -> 이진표준을 따르기 위해서는 메모리 맵에서의 데이터 정렬이 중요함. 1) C에서의 구조체 선언 다음과 같은 구조체가 있다고 가정해보자. struct xy { char c; int x; int y; } 위 내용은 간단히 표현하면, 메모리에 다음과 같이 적재될 수 있다. 1byte 2byte 3byte 4byte xy::c xy::x xy::y xy::c의 주소를 알 수 있다면, xy::x, xy::y의 주소는 도출 가능하다. (VC++기준). 그.. 2014. 10. 24.
Chapter 9. 알고리즘 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 9.1 알고리즘 사용시 필요한 헤더 파일 - : min(), max(), swap(), iter_swap() - : 수치처리 - : 함수객체나 함수어댑터 9.2 알고리즘에 대한 전반적인 소개 9.2.1 알고리즘에 대한 간단한 소개. -모든 알고리즘은 하나 이상의 범위에 대해서 원소를 처리한다. 범위에 대해 유효함을 보장하여 야 한다. -알고리즘을 보다 강력하고 유연한 사용을 위해 사용자 정의 조건자를 허락한다. 1)사용자는 함수나 함수객체를 단항조건자의 형태로 검색 알고리즘의 기준으로 사용가능 2)사용자는 함수나 함수객체를 이항조건자의 형태로 정렬 알고리즘의 기준으로 사용가능 3)사용자는 함수나 함수객체를 단항조건자의 형태로 특정원소에 대해.. 2014. 10. 24.
Chapter 8. STL함수-객체 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 8.1 함수-객체의 개념. -함수 객체는 ()연산자를 정의한 객체임. -함수객체의 3가지 장점 1) 함수객체는 상태를 가질 수 있다. 같은 함수 객체에 대해 동시에 다른 상태를 가질 수 있음 2) 각각의 함수 객체는 자신만의 타입을 가지므로, 함수 객체의 타입을 템플릿의 인자로 제공가능함. 3) 함수객체는 함수포인터보다 빠르다. 8.1.1 정렬 기준으로서의 함수객체 특정 클래스에 대해 정렬하여 가지고 있는 컨테이너가 필요할 수 있다. 이 경우 특정 클래스에 특정한 정 렬 기준을 적용하여 가지고 있으려면 함수 객체를 사용하면 된다. 예제) class Person{ private: string fn; string ln; public: expli.. 2014. 10. 24.
Chapter 7. STL반복자 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 7.1 반복자의 헤더파일 역방향 반복자 같은 특별한 반복자는 안에 있음. 그 외에는 컨테이너에 포함 7.2 반복자 카테고리 *반복자 카테고리의 기능 카테고리 기능 제공자 입력반복자 전방향 읽기 istream 출력반복자 전방향 쓰기 ostream, inserter 전방향반복자 전방향 읽기/쓰기 양방향반복자 전/역방향 읽기/쓰기 list, set, multiset, map, multimap 랜덤액세스반복자 랜덤액세스 deque, vector, string, array 7.2.1 입력 반복자 전진방향으로 읽기 엑세스만 가능한 반복자. * 동작 1) *iter : 원소의 읽기 엑세스를 제공 2) iter->member : 원소 멤버의 읽기 엑세스를.. 2014. 10. 24.
Chapter 6. STL컨테이너 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 6.1 컨테이너의 공통적인 특징 및 동작 6.1.1 컨테이너의 공통적인 특징 - STL컨테이너의 공통적인 특징 1) 모든 컨테이너는 ‘값 의미론’을 제공한다. - 컨테이너 삽입시 내부적으로 복사본을 생성. 모든 원소는 복사가능해야함. 복사시간이 오래걸릴 경우 객체의 포인터를 가져야 함 2) 일반적으로 모든 원소들은 순서를 가지고 있음. - 각각의 컨테이너는 자신의 원소를 순회할 수 있도록 반복자를 제공한다. 3) 대부분 STL자체는 예외를 발생하지 않는다. - 따라서 호출자는 동작에 대한 정확한 인자를 제공하는 것을 보장해 주어야 한다. 6.1.2 컨테이너의 공통적인 동작 1)초기화 관련 - 모든 컨테이너 클래스는 디폴트생성자, 소멸자, 복.. 2014. 10. 24.
Chapter 5. 표준템플릿라이브러리 *이 포스팅은 개인 학습을 위해 내용을 정리한 것이 목적입니다. 5.1 STL컴포넌트 1) 컨테이너 : 특정 타입의 원소들의 집합을 다루는데 사용. 2) 반복자 : 컬렉션 객체가 소유한 원소를 순회하기 위해서 사용. - 컬렉션 : 컨테이너의 전부or일부 집합. 다른 컨테이너 타입에 대해서도 공통의 인터페이스를 제공 3) 알고리즘 : 컬렉션 객체가 소유한 원소들을 처리하기 위함.(검색,정렬,수정 또는 다른목적으로 사용) - 반복자를 사용하면 알고리즘은 단 하나만 존재하면 됨. - STL의 기본 개념은 데이터와 동작을 구분하는 것에 의미가있음. - 컨테이너클래스(데이터관리), 알고리즘(동작), 이 둘을 연결하는 반복자 -> 모든 알고리즘이 모든종류의 컨테이너와 상호작용이 가능함 5.2 컨테이너 * 컨테이너의.. 2014. 10. 24.
728x90