320x100

전체 글 435

C++ 연산자 오버로딩

https://msdn.microsoft.com/ko-kr/library/5tk49fh2.aspx 연산자가 특정 클래스에 적용될 때, 그 동작 방식을 목적에 맞게 정의할 수 있는 기능.모든 연산자가 오버로딩이 가능하지 않고, 새로운 연산자를 추가할 수 없다. 반드시 메서드로 오버로딩 해야 하는 연산자어떤 연산자들은 클래스를 떠나서는 의미가 없으므로 반드시 클래스의 메서드로만 오버로딩 되어야 한다.ex) operator=는 특정 클래스의 대입에 대해서만 의미가 있다. 반드시 전역 함수로 오버로딩해야 하는 연산자연산자의 좌항에 목적하는 클래스 외에 다른 타입이 올 수 있어야만 한다면 전역 함수로서 오버로딩 해야 한다.ex) operator 어느 것이나 상관없는 연산자는 virtual로 선언이 가능하도록 메서..

STL 커스터마이징

1. 할당자STL컨테이너는 할당자 타입을 템플릿 파라미터로 받는다.ex) vector 템플릿 정의template class vector; 2. 반복자 어댑터2.1 역뱡항 어댑터reverse_iterator를 이용하면 역방향 탐색을 할 수 있다.typedef reverse_iterator와 rbegin(), rend() 메서드를 지원한다. 2.2 스트림 반복자입출력 스트림을 입출력 반복자로 취급할 수 있는 스트림 어댑터를 제공한다.ostream_iterator(출력 스트림 반복자), istream_iterator(입력 스트림 반복자)ex)std::vector myVector;for (int i = 0; i < 10; i++) {myVector.push_back(i);} std::copy(myVector.b..

유틸리티 라이브러리

1. std::function 헤더에 정의된 타입.함수 포인터, 함수 객체, 람다 표현식등 호출이 가능한 것이라면 저장이 가능하다.템플릿으로 정의되어 있는데, 이에 대한 템플릿 파라미터는 함수 원형에 대한 정의를 받는다.std::functionR은 리턴 타입, ArgTypes는 쉼표로 분리된 함수의 인자 타입 목록 ex) std::function을 함수 포인터 변수로 사용하는 방법void func(int num, const string& str){cout

함수 객체

함수 호출 연산자를 클래스에서 오버로딩하면 함수 포인터 자리에 넣을 수 있는 객체. 1. 산술 함수 객체 plus : + minus : - multiplies : * divides : / modulus : % negate : ~ 2. 비교 함수 객체 equal_to : == not_equal_to : != greater : > less_equal : = 3. 논리 함수 객체 logical_not : ! logical_and : && logical_or : || 4. 비트 연산 함수 객체 bit_and : & bit_or : | bit_xor : ^ 5. 함수 객체 어댑터 함수 객체를 이용할 때, 인터페이스가 맞지 않는 경우 함수를 합성하거나 조합하여 필요한 함수형태를 만듦 5.1 바인더 함수의 특정 파라..

람다(lambda)

람다 표현식 : [캡쳐블록] (파라미터) mutable 익셉션목록 -> 리턴타입 { 함수바디 } 캡쳐블록 : 람다 함수 안에서 참조할 바깥 변수를 지정한다.[=] 모든 변수를 값으로서 복제하여 캡쳐한다.[&] 모든 변수를 참조로서(원본을 수정) 캡쳐한다. [&x] 변수 x만 참조로서 캡쳐한다.[x] 변수 x만 값으로서 캡쳐한다.[=, &x, &y] 모든 변수를 디폴트 값으로 캡쳐하되, x와 y는 참조로 캡쳐한다.[&, x] 모든 변수를 디폴트 참조로 캡쳐하되, x는 값으로 캡쳐한다.[&x, &x] 같은 변수를 반복해서 지정하는 것은 허용하지 않는다. 파라미터 : 표현식에서 넘겨받을 파라미터 목록을 정의한다.mutable : 캡쳐받는 변수를 수정할 수 있다.익셉션목록 : 바디 안에서 throw 할 수 있는..

STL 알고리즘

1. 유틸리티 알고리즘 min(), max() : 주어진 두 값 중에서 작은 값, 또는 큰 값을 리턴한다. C++11에서는 두 개 이상의 값을 함수 인자로 사용할 수 있다. minmax() : 주어진 2개 이상의 값 중 최소값과 최대값을 pair 타입 쌍으로 리턴한다. swap() : 주어진 두 변수의 값을 교환한다. 2. 불변 알고리즘항목의 나열을 대상으로 하여 항목의 어떤 정보를 리턴하거나 항목마다 특정 함수를 실행한다. ● 검색 알고리즘 - C++11 알고리즘 개요 정렬된 상태 복잡도 find() find_if() 주어진 값과 같거나 주어진 조건이 true가 되는 첫 번째 항목을 찾는다. 불필요 선형 find_if_not() 주어진 조건이 false가 되는 첫 번째 항목을 찾는다. 불필요 선형 fi..

320x100