본문 바로가기

반응형

STL

(4)
eclipse 에서 stl에 있는 내용 보기(How can I inspect the contents of STL containers?) 이클립스 CDT 디버거를 통해 C++ STL 컨테이너의 내용을 보면 한눈에 봐서는 알 수 없는 난해한 구조와 값들로 가득차 있다. 하지만 pretty-printing을 통해 std::map, std::list, std::vector 등의 컨테이너 안에 있는 내용을 보다 가독성이 높은 형태로 볼 수 있다. 본 포스팅은 http://wiki.eclipse.org/CDT/User/FAQ#How_can_I_inspect_the_contents_of_STL_containers.3F 에서 제공하고 있는 내용을 한글로 간단하게 번역하고 적용하면서 겪었던 몇몇 참고 사항을 추가했다. 보다 정확한 정보를 원하시는 분은 위 링크를 직접 확인해 보시는 것도 좋은 방법이다. Pretty-printing 요구사항 : - GDB..
[C++] C++ 스타일 타입 캐스팅 들어가며 C 스타일의 타입 캐스팅은 자유도가 높은 대신 서로 캐스팅될 수 없는 타입임에도 불구하고 암시적으로 캐스팅 해버리고, 그 결과 정의 되지 않은 오류가 발생하게 되고 그 책임을 사용자에게 떠넘겨(?) 버린다. 이런 오류를 미연에 방지하고자 C++에는 새로운 스타일의 타입 캐스팅이 도입 되었고 의도된 대로 사용되지 않는 타입 캐스팅에 대해 컴파일 타임 오류 발생 시키도록 하였다. 이번 포스트에서는 새로이 추가된 C++ 스타일 캐스팅에 대해 살펴 보도록 하겠다. C++ 스타일 타입 캐스팅 : static_cast const_cast reinterpret_cast dynamic_cast static_cast static_cast는 상속 트리 내에서의 포인터형 번환만이 가능한 캐스팅 방법이다. 즉, 상속..
STL string을 이용해 텍스트 라인을 단어로 쪼개기 이번 장에서는 STL의 string을 이용해 특정 구분자로 나뉘어 있는 텍스트 한줄을 여러개의 단어들로 쪼개는 함수를 만들어 보도록 하겠습니다. 1 void split(const string& text, string& separators, vector& words) { 2 int n = text.length(); 3 int start, stop; 4 5 start = text.find_first_not_of(separators); 6 while ((start >= 0) && (start n)) 9 stop = n; 10 words.push_back(text..
[C++] STL map의 요소 삭제시 주의 할 점 요즘들어 포스팅 하는 주기가 점점 길어 지고 있네요. 날씨는 점점 추워지고 솔로들이 더욱 살아 남기 힘들어지는 크리스마스가 다가 오고 있습니다. 저도 크리스마스 때 남들처럼 거리를 활보 하고 싶습니다만 겨울의 거리는 솔로에겐 냉정하지요. 올 크리스마스는 징검다리 휴가라, 크리스마스 이브에 휴가를 내면 4일을 연속으로 쉴 수 있군요. 하지만 어디 딱히 갈 곳도 없고 오라는 곳도 없으니, 저는 웹 서핑이나 하면서 블로그 포스팅이나 하렵니다. 오늘은 stl의 map의 erase에 대해서 간략하게 알아 보겠습니다. 보통 다른 stl의 컨테이너들은 erase를 하는 것에 대해 별다른 신경을 쓰지 않아도 별 문제가 없지만 map이란 녀석은 다른 컨테이너들 처럼 다루면 성질을 부리며 런타임 오류를 내버리는 경우가 있..

반응형