내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 26항목 부터 반복자에 대한 이야기를 진행 한다. 반복자란 말을 딱 들으면 뭐지.. 란 생각을 한다. 뭐야 도데체? 반복자라 하면 잘 모르겠고 iterators 라고 하면 아~ 하고 느낌이 팍팍 올 것이다. iterators 에는 iterator ,const_iterator, reverse_iterator. const_reverse_iterator 처럼 4가지 종류의 iterators가 있는데, 왜 4개나 있고, 어떤 관계이며, 변환이 가능한지, 알고리즘..
Effective STL 검색 결과
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 "대비해 두자" 에서 보면 알수 있듯이, 이번 항목은 해쉬 컨테이너라는게 있다. 이게 무엇이고, 어떻게 선언되어 지며, 어떻게 셋팅 할수 있는지 만.. 요약해서 알려 준다. 나머지 부분에 대해서는 직접 해쉬컨테이너에 대해서 조사하여 .. 익혀야 한다. 그래서 이번 항목을 위해 몇가지 해쉬컨테이너에 대해서 구글링 한것들을 정리해 본다. http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/Database/DataS..
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 STL 에 있는 map 에 대한 이야기로, 이 두 함수(어찌보면 operator[] 도 함수.. 라 볼수 있다)의 특징을 알아두어 효율적인 코딩을 하자는 내용이다. 그렇다면 왜 이번 항목에선 이 둘의 효율을 주의 하고 선택하자고 했을까? .. 이것에 관련된 사항에 대해서는 링크를 첨부 한다. 2008년 5월경 나는 이런것들의 차이에 대해서 기록해 둔것이 있다. 링크 : http://www.ikpil.com/266 .. 더 자세히 간다면 .. 소스 한번 뜯..
"좋을 때가 있다" 이런 문구가 들어가면, 조금 복잡해 지는 경향이 없지 않아 있다. 왜냐하면, 경우에 따라서 달라지는 상황에 대해서 판단을 내려야 하기 때문이다. 제목을 다시 정리하지만 "연관 컨테이너(Associative Containers)보다 연속 컨테이너(Sequence Containers)의 vector가 더 좋다는 이야기가 아니라, ... vector가 더 좋을 수도 있다"는 이야기로 이번 항목은 시작 되었다. 연관 컨테이너(Associative Containers)는 탐색에 특화된 컨테이너라 할 수 있는데, 이 탐색이란 것은 "C 배우는 알고리즘"에서 나와 있는 비슷한 방법으로 행해지게 된다. 구체적인 내용은 정리 글의 범주에서 벗어 나므로 생략하고, 구글에서 "균형 이진 트리" 라고 구글..
항목 21과 같은 맹락으로 이어진다. 이것 또한 연관 컨테이너(Associative Containers)의 연관을 무너뜨리게 한다. map 과 multimap 도 키를 바꿀수는 있을 꺼 같지만, 여기선 const 이기 때문에 변경을 못하도록 되어 있다.(캐스팅 하면 가능하지만...) 그래서 이 두개의 컨테이너는 삭제 후 삽입 방법으로 변경해야 한다. 하지만 set 이나 multiset 은 값 자체가 키(Key)이기 때문에, 바꾸는 일은 피해야 한다는 것이다. 이것도 키를 바꾸기 위해선 "삭제 후 삽입"을 해야만 한다. 곰곰히 생각하면 난 바꾸지 않을테니까, const 로 Key를 설정할꺼야. 라고 해서 std::set 하게 해도 크게 두가지 이유 때문에 무의미하게 된다. 첫째, 사용자 정의 객체를 담을 ..
결론부터 말하는게 더 의미전달이 잘 될것 같아, 시작부터 말한다. "왜냐하면, 연관 컨테이너(Associative Containers)의 연관 자체가 무너지기 때문이다" 바꾸어 말하면, 연관 컨테이너(Associative Containers)로써의 가치가 없어진다는 것이며, 컨테이너의 자료들을 신용할수 없다 는것을 의미한다. 그래서 C++ 표준화 위원회에서 연관 컨테이너(Associative Containers)의 요소를 정렬할때 쓰는 비교함수는 같은 값에 대해서 false를 리턴하도록 규정하였다.(즉, 비교함수가 객체를 비교할때 strict weak ordering 을 정의해야 한다. 관련 주소 http://en.wikipedia.org/wiki/Strict_weak_ordering : 요즘 들어 점점..
최근댓글