item2의 주제는 컨테이너의 사용에 있어 코드의 독립적일 수 있을 거라는 환상을 조심하라 입니다. 우선 모든 STL은 템플릿이 가능하도록 설계되어 있습니다. 다시말해 STL로부터 얻을 수 있는 pointer,iterator, function 역시 템플릿되어 사용이 가능합니다. 때문에 이를 기초로 클래스등을 설계하면서 사용하는 STL을 선택하는데 주의를 필요로 합니다. 가령 라이브러리를 만들고 나서 개발자들이 이를 사용한다고 가정합니다. 하지만 추후에 라이브러리를 수정하면서 내부에서 사용하는 STL을 vector에서 map으로 바꿉니다. 물론 인터페이스는 그대로 이기에 사용자가 라이브러리의 클래스를 사용하거나 함수를 호출하는데 변경은 없습니다. 하지만 내부의 자료구조가 위 처럼 sequence conta..
item1은 어떠한 상황에서 적절한 STL을 선택할것인가에 대한 주제입니다. 1. 임의의 위치에 삽입할 일이 잦다면( vector::insert() ) 순차 컨테이너를 선택한다. - 연관 컨테이너는 이러한 작업을 할 수 없다. 단, insert와 같은 작업은 많은 비용이 발생하므로 신중해야 한다. (insert가 발생하면 모든 원소들을 이동시켜야한다. ) 2. 컨테이너에서 순서가 중요하지 않다면 hashed 컨테이너를 사용한다. (c11에서는 unordered로 변경 됨) 3. c++표준에 꼭 맞춰야 한다면 hashed 컨테이너와 slit, boost::rope는 사용하지 않는다. 4. 원소의 이동이 잦다면 연관메모리 컨테이너는 피하자. (1번과 배치되는 내용이며 선택에 주의가 필요하다. 상황에 맞게 선..
- Total
- Today
- Yesterday
- printf
- 문자열
- 사천
- regex
- Codejam
- 이루마
- 중국여행
- peram jam
- compile
- 알고리즘
- yiruma
- Spring
- link
- 여행
- cpp
- 중국
- Algorithm
- 피아노
- kernerl
- Pointer
- STL
- 악보
- C language
- C++
- 카카오 공채
- python
- 코드잼
- linux
- 정규표현식
- 드럼
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |