바로 질문으로 시작하자. 1. 다음 코드가 정상적으로 작동 하는가? 그렇다면, 어떻게 개선 할 수 있는가? char *p = &v[ 0 ]; 정상적으로 작동한다. 약간 위험해 보이는 코드이기 때문에, iterator를 이용해서 사용 하는 편이 더 안전하다고 생각 될 수 있다. 하지만 .. iterator 쓰기가 부담스러울 때가 있는데, 그때 포인터를 사용 할 수 있겠다. 여기서 왜 iterator가 더 안전하냐하면, 확인과정을 거치면서 이동할 수 있기 때문이다. 그리고 뭐가 더 좋고 뭐가 더 좋다는 말은 못하겠다. 때에 따라서 좋은게 좋은거로 되기 때문이다. 2. 다음 코드는 유효한가? 설명하라. template void f( T& t ) { typename T::value_type *p1 = &t[0]..
컨테이너 검색 결과
내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다. - 최익필 STL 알고리즘 중 동작이 제일 혼동스러운 함수를 손꼽으라면 단연 remove가 뽑힌다. 왜냐하면 함수명이 ... 햇갈리기 때문이다. remove 알고리즘을 호출하여 컨테이너 내부의 값들을 지울려고 한다해도, 컨테이너 내부의 값들은 지워지지 않는다. 왜냐하면 remove 함수는 이터레이터를 인자로 받기 때문에, 어떤 컨테이너에서 값을 지워야 하는지 알 수 없기 때문이다. 그런고로, remove 류의 모든 함수들(unique, remove_if)은 값을 지..
내가 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 하게 해도 크게 두가지 이유 때문에 무의미하게 된다. 첫째, 사용자 정의 객체를 담을 ..
최근댓글