첫번째 장은 책 설명으로 부터 시작되고 본격적인 내용은 이렇게 시작한다. "비유의 중요성" 그 사례를 예로 들면서, 독자를 설득시키려는 노력이 보인다. 사례 1. 과학의 역사는 비유의 힘에 기초를 둔 발견들로 가득하다. 화학자 케쿠레는 자기의 꼬리를 물고 있는 뱀의 꿈을 꾸었다. 그는 깨어나서 벤젠의 특성을 설명할 수 있는 고리 모양의 분자 구조를 깨달았다. 사례 2. 기체의 운동 이론은 당구공 모델에 기초한다. 다수의 기체 분자는 당구공처럼 탄력적으로 충돌하는 것으로 생각되어져 왔다. 이 모델로부터 여러 가지 효과적인 이론들이 발전되어 왔다. 이런 사례로 보건데, 일반적으로 모델(비유)은 생생하고 포괄적인 개념으로 이해될 수 있다는데 의의가 있으며, 특성이나 관계, 의문의 여지를 제공한다. 프로그램 설..
전체 글 검색 결과
참 생각하는거 보면 웃기다. 어떨때 쓰이는지는 감이 온다.(사실 이 감이 .. 전체적인 프로그래밍에서 나는 사용 된다. 예전 TV볼때 이런 감들은 경험을 통해서 늘릴수가 있으며, 알고리즘으로 움직이는것보다 더 빠른 속도를 낸다고 한다. 단점이라면 이 감은 안쓰다 보면 퇴화가... - 뇌의 구조중에서) 함수-객체의 등장배경을 추측해보면, 1. C++을 OOP적인 코딩을 제공하기 위해서 operator 연산이 가능하게 됨으로써 등장하게 된거 같다. 특징으로는.. 함수 객체 자체가 객체이기 때문에, 1. 함수에 특정 상태, 속성을 넣을수 있게 되었다.(물론 C스타일도 static을 사용하면 가능하지만 함수사용의 제약이 있다. 예를 들어 500개의 속성을 가진 함수를 만들려면 함수가 500개여야 한다;) 2. ..
첫째, map안에 데이터를 넣을때는 항상 insert를 이용하여 넣을것 연관배열처럼 [] 을 이용하여 넣어도 되지만 만약 []했을때는 넣는 데이터의 생성자에 의해서 1번 초기화 되었다가 다시 사용자가 정의한 값으로 초기화가 되기 때문이다. 즉, 불필요한 생성자 호출과 초기화가 문제가 될 수 있다는 것 예) map col1; col1[1] = 1; 이때 col1의 첫번째 데이터 first는 1로 초기화, second = 0으로 초기화 그 후에 1을 데입 .. 이게 100만개가 쌓이면 어떻게 차이 나는지 실험을 해봤다. col1.insert(1,1); 이렇게나 col1.insert(make_pair(1,1)); 이렇게 사용 해도 된다. 100만개 테스트시 make_pair의 경우 13,8초, value_ty..
min(a,b) a와 b중 작은값을 리턴해주며, 같을시 첫번쨰 매개변수를 리턴한다. max(a,b) a와 b중 큰 값을 리턴해 주며, 같을시 첫번째 매개변수를 리턴한다,. 그런데, 이것만 한다면, 그리 특별하지 않다. 하지만.. min(a,b, op) 식을 제공하기 때문에, 막강하다. max(a,b, op) 식도 제공한다. swap 함수는 레퍼런스로 계산해주기 때문에 막강하다. 클래스 TEST 에 int a와 int b 가 있고, 이 클래스의 객체 AAA 와 BBB가 있을때. private 로 되어 있으면 값을 얻어와서 다시 셋팅해줘야 하지만. 클래스 내부에.. swap(_T& a) { std::swap(자기변수, a.상대변수); std::swap(자기변수, a.상대변수); } 라고 해 두고.. 함수객체..
new 만 쓰면서 사용하다가 어느샌가 스마트 포인터란 녀석이 존재한다는것을 알게 되었다.그 스마트 포인터중 C++ 표준 라이브러리 유틸리티에 포함되어 있는 auto_ptr에 대해서 익히려 한다. #include #include using namespace std; class BABO { int a, b, c; public: BABO* Mythis; BABO() { a = 3; b = 4; c = 5; Mythis = this; } void draw(void) { std::cout
최근댓글