본문 바로가기

STL

항목3 : 복사는 컨테이너 안의 객체에 맞게 비용은 최소화하며, 동작은 정확하게 하자. 무심코 지나간 이야기 이지만 책을 읽으면서 좀더 자세히 혹시 아는 내용이면 튼튼하게 내공을 쌓고, 부족한 부분은 보충하고자 하는 의미에서 정리를 시작하였습니다. 그 동안 현직 프로그래머인데라는 자만심에 의해 제 자신 스스로 도태되어 가는 모습을 느끼고 있을 때 상당히 괴롭고 이 짓을 해야 하는 가라는 고민에 빠져 헤어나오지 못하고 슬럼프가 오랫동안 지속되었습니다. 얼마동안 노력을 하지 않았다부터 시작을 하여 지금에 있는 모습까지 뒤돌아 보면서 많은 것을 느끼며 이제 새로이 시작하는 마음에 책을 다시 잡고 틈틈이 공부하면서 내공을 쌓고자 시작을 하였습니다. 많은 분들에게 도움이 되면 좋고 아니면 참고할 만한 블로그가 되었으면 하는 마음에 이렇게 정리를 시작할까 합니다. 서 론 컨테이너라 한다면 보통은 데이.. 더보기
[ STL ]컨테이너에 독립적인( container-independent ) 코드 라는 환상을 조심하자. 서 론 STL은 일반화( generalization)에 기초를 두고 만든 프로그래밍 장치이면 언어입니다. 배열 [ array] 이란 데이터 집합은 컨테이너로 일반화되었고, 매개 변수를 통해 컨테이너에 담을 수 있는 데이터의 타입을 지정할 수 있도록 만들어졌습니다. 함수는 알고리즘으로 일반화되었고, 알고리즘에서 사용되는 반복자의 타입으로 매개 변수화 되었습니다. 표준 연속 메모리 컨테이너는 임의 접근 반복자를 쓸 수 있도록 해주고, 이와 반대로 노드 기반 컨테이너는 push_front와 push_back을 지원하지만, 연관 컨테이너는 그렇지 않습니다. 연관 컨테이너에서는 로그 시간의 복잡도를 가진 low_bound, upper_bound, equal_range 함수를 쓸 수 있지만, 시퀸스 컨테이너를 지원.. 더보기
[ STL ] vector Reference vector class template Vector Vectors are a kind of sequence containers. As such, their elements are ordered following a strict linear sequence. Vector containers are implemented as dynamic arrays; Just as regular arrays, vector containers have their elements stored in contiguous storage locations, which means that their elements can be accessed not only using iterators but also using offsets on .. 더보기
[ STL ] 효과적인 컨테이너 ( container ) 요리법 서 론 STL은 반복자, 알고리즘, 함수 객체 등을 모아 놓은 것이죠, 하지만 대부분의 C++ 프로그래머들의 마음에 가장 멋진 것으로 늠름하게 서 있는 것은 컨.테.이.너.가 아닐까 합니다. 자바의 자료구조를 부러워하고 C++ 타입의 배열을 보면은 한숨아닌 한숨을 쉬다가 STL 컨테이너를 접한 사람들은 한 마디로 압도 당할 수밖에는 없습니다. - 크기를 지정해 주지 않고도 알아서 늘어나고( 혹은 줄어들고), 내부에 들어 있는 객체의 개수도 추적해 주고, 메모리 관리까지 알아서 해주니 말이죠. 요소의 타입만 정해주면 어떤 데이터든 조작할 수 있는 Template의 특징을 그대로 가지면서, 데이터 조작에 소요되는 알고리즘적인 복잡도까지 미리 보장해 주어, 프로그래밍의 재미를 한층 높여주기 때문이라 할 수 있.. 더보기
STL Find 삽질 기행문 서버 프로그램중에 발생한 일이 하나 있습니다. g++ 컴파일러와 MS컴파일러가 틀리다는 것을 또 한번 느끼는 계기가 되었습니다. 리눅스에서 STL vector을 사용해서 필요한 정보를 push_back에 담아 놓고 그것을 find 문을 통해 검색해서 찾아 처리하는 모듈을 만들던 중에 에러없이 알고리즘 및 생각했던 구조만 만들어 놓았습니다. 이것을 단위 테스트를 통해 좀더 세분화 작업을 해보려구 윈도우 MS2005로 가져와 단위 모듈을 좀 더 꾸며 보려고 똑같이 만들어 놓은 상태에서 에러가 발생..( -_- 젝1 ) 또 오타가 있나 하는 생각에 잘 살펴 보았습니다. ( 리눅스 프로그래을 오래하다 보니깐 윈도우는 거의 안쓰는 프로그래머 입니다. ㅡㅜ 인터넷 뱅킹이나 아니면 포샵기타 잡일에만 사용되는 윈도우라.. 더보기
C++ 튜토리얼 소스 음.. 구하는게 매번 번거로운 점이 있어서.. 더보기
STL Container TODO 모든 표준 컨테이너에 공통적으로 들어 있으며 한두 개를 제외하고 공통적으로 들어 있는 멤버부터 정리해 보도록 하겠다. 더 자세한 내용이 필요하면 여러분 각자가 가지고 있는 표준 헤더를 열어보면 될 것이다. ( e.f ) ...etc 맴버 타입 valuse_type : 원소의 타입 allocator_type : 메모리 관리자의 타입 size_type : 첨자, 원소 개수 등의 타입 difference_type : 반복자 사이의 간격을 나타내는 타입 iterator : value_type* 과 비슷한 역할을 하는 타입 const_iterator : const value_type* 과 비슷한 역할을 하는 타입 reverse_iterator : valu.. 더보기