목록공부엔 끝이없다 (13)
Hyun2and
수월할 것 같은 연산이 자원 누수를 일으키거나 불안정하게 동작한다 STL이 제공해주는 요소를 잘 결합해서 설계상의 특징을 최대한 끌어내야 한다 STL의 정의 이 책에서는 반복자를 가지고 동작하는 C++ 표준 라이브러리의 일부로 정의한다 string을 포함한 표준 컨테이너, iostream 라이브러리, 함수 객체, 알고리즘 등 (stack, queue, 우선순위 큐, bitset, valarray, C++ 배열 은 제외) 해쉬 포인터도 포함 . 원래의 STL 정의에는 없다. 참조 카운팅 Reference Counting 포인터의 컨테이너를 기반으로 한 설계에서 이야기한다 string 클래스도 내부적으로 참조 카운팅을 하게 되어있다 string, wstring 유니코드 문자열클래스 wstring stirng..
1: C++ 언어들의 연합체 C++는 다중패러다임 프로그래밍 언어 라고 부른다 절차적 프로그래밍을 기본으로 하여 객체 지향, 함수식, 일반화 프로그래밍, 메타 프로그래밍을 포함한다 TMP : 템플릿 메타프로그래밍. C++의 일반화 프로그래밍 부분 STL : 템플릿 라이브러리 컨테이너, 반복자, 알고리즘, 함수 객체 C와의 차이점 C에서는 기본적으로 값 전달이 참조 전달보다 좋다. C++에서는 생성자, 소멸자가 생기고, 템플릿을 쓰다보면 해당 객체의 타입을 알 수 없기 때문에 const 객체 전달이 가장 좋다 그러나, STL은 값 전달이 좋다 (C 기반이기 때문에) 2: #define 보다 const, enum, inline 컴파일러를 더 가까이하자 #define 을 쓰면 선행 처리 과정에서 이미 상수로 ..
size_t 부호 없는 정수 타입을 typedef로 정의한 것 개수를 셀 때 쓰는 타입 (char* 기반 문자열의 크기, STL 컨테이너의 원소 개수 등) operator[ ] 에서도 받도록 한다 Explicit 암시적 변환이 불가능한 타입 명시적으로 변환해주어야 매개변수 등으로 쓸 수 있다 Undefined Behavior 실행 시간에 어떤 현상이 터질지 확실히 예측할 수 없는 동작 널포인터를 역참조하거나 char 배열 마지막에 널문자가 들어가거나 유효하지 않는 배열 index를 참조하면 안된다는 것