바로 질문으로 들어가자. 1. 판단자(predicate)를 정의하고, STL에서 사용 되는 방법을 예를 들어 설명하라. 판단자(predicate)는 bool 형을 반환하는 함수 오브젝트를 말한다. 예제 코드 #include #include // 판단자(술어구문 클래스) class Predicate { public: bool operator()( int val ) { return val > 1; } }; int main( void ) { std::vector testvector; testvector.push_back( 1 ); testvector.push_back( 1 ); testvector.push_back( 2 ); testvector.push_back( 2 ); testvector.push_back..
분류 전체보기 검색 결과
판단자라 불리는 이것은 predicate 를 말하는 것이다. 이 predicate 는 저번에도 언급했드시 술어 구문 함수 오브젝트로 쉽게 생각해 클래스(구조체)의 bool operator()( T ) 을 정의하여, 함수 오브젝트로 사용 하는 객체를 가리킨다. 자세한 내용은 http://ikpil.com/608 을 참고. 1. std::remove() 알고리즘이 하는 일을 구체적으로 설명 하라. 참조 : http://ikpil.com/598 2. std::vector에서 3의 값을 갖는 모든 요소를 지우는 코드를 작성 하라. #include #include int main( void ) { std::vector abcdefg; for( int iii = 0; iii < 10000; ++iii ) { abc..
사실 이 항목이 왜 존재 하는지 모르겠다. "왜" 란 느낌이 팍 들게 만들었던 질문과 예제코드를 보자. 첫번째 질문, std::cin과 std::cout 은 무슨 타입인가? 코드로 보는게 더 편하니, 코드 첨부 // char TYPEDEFS typedef basic_ios ios; typedef basic_streambuf streambuf; typedef basic_istream istream; typedef basic_ostream ostream; typedef basic_iostream iostream; typedef basic_stringbuf stringbuf; typedef basic_istringstream istringstream; typedef basic_ostringstream ostr..
템플릿 특수화란? 템플릿 매개변수에 따라 컴파일러가 템플릿 코드 선택해 줄수 있게 해주는 기법을 말한다. 템플릿 특수화는 여러가지 용도로 사용 되는데, 포인터 타입이 들어오거나, 특정 타입을 받았을 경우, 특수화된 템플릿이 인스턴스화 되게 할 수 있다. 굳이 비교를 하자면, C 언어의 if 문 같은 녀석이다. (메타 프로그래밍에선 이 특수화를 감칠맛 나게 응용한다.) 템플릿 특수화를 어떻게 만드나? 예제코드를 보자. #include // 일반 클래스 템플릿 template class ikpil { public: ikpil() { using namespace std; cout
2010년쯤 되면, 기본 사양이 쿼드코어 시대를 맞이하게 될 것이다. 이것은 멀티 쓰레드 환경이 얼마나 가까이 왔는지 보여주는 증거이기도 하다. 이런 시대에 맞추어, 프로그래머는 멀티 쓰레드 환경에서 더 빨리 돌아가도록 설계하고 만들어야 할 것이다. 13, 14, 15 항목에서 설정했던 모든 것들이, 멀티 쓰레드에서 어떻게 동작을 하게 될까? ... 쓰레드를 생각하면 복잡해 지는 로직 속에서 우리는 "동기화 객체(Sync Object)"를 만들어서, 각 쓰레드를 동기화 시키려고 할 것이다. 하지만 이 "동기화 객체"를 사용 하면, 적지 않은 비용을 내야 할 것 이다. 이번 항목은 13,14,15 항목에서는 멀티쓰레드 환경에서의 최적화로 String 클래스를 정의 하는 방법을 이야기 한다. 시작 부터 말하..
최근댓글