여기 (
http://sourceforge.net/projects/dclx/)에 한번 방문해보세요.
아래는 간략한 소개입니다.
-------------------------
DCLX is a free library that provides ArrayList, LinkedList, Vector, HashMap, HashSet, ArraySet, Queue and Stack structures to Delphi/Kylix. It also provides algorithms like in STL (Apply, Found, CountObject, Copy, Generate, Fill, Reverse, Sort...).
어떤게 좋을까요? 님이 쓰신 글 :
: .
: 1. 자료를 구하고 있습니다.
: c++로 구하는건 그렇게 어렵지 않지만 - 어쩌면 어려울 수도... - 델파이 관련 자료는 구하기가
: 쉽지가 않더군요. 예전에 비슷한 자료를 구해다가 하드에 저장해둔거 같은데 아무리 찾아도
: 없습니다. 도와 주십시요.
:
: 2. 컨테이너를 구하고 있습니다.
: BinaryTree, BlackWhiteTree, HashTree, Queue등이 아주잘~ 구현되어 있는 컨테이너를
: 구하고 있습니다.
:
: 3. 아주 잘~ 만들어져 있으면 좋겠습니다.
: 컨터이너를 만들어 보시거나, 정밀하게 사용해보신 경험이 있으신 분들은 아시겠지만 이런것
: 들은 아주 조그만 코드 하나 하나에 의해 성능이 크게 좌우 됩니다.
: 이런 잘 정의된 컨테이너는 쉽게 구할 수 있는게 아니더군요. 예를 들자면 Jedi JCL에 포함된
: 컨테이너가 있는데, 이것은 성능면에서 만족할 만한 수준이 아닙니다. class로는 잘 구현되어
: 있지만 성능은 "영~ 아닙니다" 입니다.
: 기타 몇가지 컨테이너를 사용해 보았지만 만족할 만한 성능을 내는것은 없어서, 필요할 때마다
: 만들어서 사용하고 있는 실정입니다. 하지만 그것도 한계여서 범용성 있게 만들면 성능이 부족
: 하고 성능에 치중하다 보니 범용성에 한계를 만나는 동시에 수정하기 여간 까다로운게 아닙니다.
: 그래서 이참에 여러 고수님들의 도움을 구하고자 합니다.
:
: 4. 잘~ 만들어진 것의 기준이란
: 4-1. TList에서 사용하는 Block할당 & Capacity 기법을 사용해서 각 Item들을 관리하는 컨테이너
: 여야 합니다.
: 4-2. 레지스터 스위칭의 오버헤드를 줄이기 위해, OOP가 아닌 구조체로 컨테이너, Item의
: 인스턴스가 관리되고, 이것들이 thread safe하게 동작하도록 설계되어야 합니다.
: 4-3. 문자열 indexing과 검색이 foxpro의 rush-more 정도의 성능이 나는 기법이 있으면 좋겠습
: 니다.
: 4-4. 중요한 item은 문자열에 포커스를 맞추었으면 좋겠습니다. 결과적으로, 문자열을 보관하고
: index하고 검색하는데 탁월한 성능을 보였으면 좋겠습니다.
: 4-5. 기타 등등... 여튼 빨랐으면 좋겠습니다. ^^a
:
: 5. 이런게 소스공개된 프리가 있을라나?
: 5-1. c/c++로 이런 자료를 구하기도 어렵겠지만, 사용자층이 얇은 파스칼에서 이런것을 구하기는
: 하늘의 별따기 겠죠? 그래도 구하고 싶습니다. 파스칼로 구현된 소스코드를
: 5-2. 분명히 소스공개된 프리는 없을테니, 소스공개된 상용이라도 상관없습니다. 이런 잘 구현된
: 상용이라면 조금 가격이 비싸더라도 사서쓸 생각이 있습니다.
:
: 6. 혹시라도 c/c++로 이런 소스를 보신적은 없습니까?
: c/c++을 많이 하셨던 분이라면 이런 소스를 보신적이 있을지도 모르겠습니다. 하지만, 일반적인
: STL을 추천하고 싶으시다면 참아 주십시요. STL소스를 찬찬히 들여다 보신분들은 아시겠지만, STL
: 이 가지는 한계 - RTTI의 복잡성/비대함, 복잡한 class구조... 등 - 때문에 상당한 실행시간의 오버
: 헤드를 감수 해야 합니다.
: 겉보기는 STL이지만, 내부적인 구조는 속도위주로 설계된 것이 있다면 알려 주시면 감사하겠습니
: 다.
: 여튼, 좋은 c/c++ 소스를 알고 계신 고수분은 좀 도와주십시요.
:
: 7. 소스가 없다면, 못 구한다면, 만들어야 겠죠? ㅠ.ㅠa
: 위에 언급한 코드를 직접 코딩해서 만드려면 아무래도 만만찮은 시간이 필요할 것 같습니다.
: 저 혼자 만들어서 혼자 써도 되지만, 이 참에 개발자들 끼리 모여서 sourceforge에서 같이 작업해 보는
: 것도 좋을듯 합니다.
:
: 999. 마무리
: 최고의 고수님들, 좋은 답을 기다리겠습니다. ^^a
: .