2009-08-26 5 views
0

사용 중 C++!Microsoft C 기반 목록 컬렉션이 있습니까?

나는 C++ 모음을 알고 있지만, Microsoft가 사용자 인터페이스 프로젝트에서 사용할 수있는 Linux 커널과 같은 일부 유형의 C 기반 목록 구조를 가지고 있는지 궁금합니다.

나는 내 자신을 굴리지 않는 것이 좋습니다.

+0

이 질문에 대한 답변에는 몇 가지 옵션이 있습니다. http://stackoverflow.com/questions/668501/are-there-any-open-source-c-libraries-with-common-data-structures –

+0

그리고 "C로 마스터 링 알고리즘"에서 코드를 가져 오는 것보다 더 나쁠 수 있습니다. http://www.amazon.com/dp/1565924533 –

답변

0

재사용 가능한 컬렉션은 C로 사용하기가 어렵습니다. 유연성이나 메타 데이터가 없습니다 (이 배열 목록이 오버플로되어 다시 할당해야 할 때 어떻게 알 수 있습니까? 나머지 코드가있는 경우 어떻게 다시 할당합니까?) 사용자 정의 ALLOC를 사용하고 계십니까?

당신은 (당신이 C에서 아무것도 할 수있다)을 할 수 있지만 정말 빠른 추상적 가져옵니다.

을 다른 한편으로는, 자신이 솔직히 재미는 C에서 연결된 목록을 작성. 배열 이미 해시가 성가 시지만 불가능한 것은 아니지만, 나무는 재미 있습니다 ...

또한 - 사람이 생각하는 b 끊임없이 최적화. 함수 호출의 뒤에서 this = this.next를 사용하는 것 대신에 모든 연결된리스트 연산을 설정하는 것은 아마 많은 것을 혐오 할 것입니다 (정당하게 그렇게).

+0

필자가 작성한 오래된 코드를 제거하고 얼마나 나쁜지 보려고합니다. 나는 새로운 것을 쓰는 데 단지 몇 시간을 보낼 것이다. – Casey

2

Windows API의 유일한 것은 InterlockedPushEntrySListInterlockedPopEntrySList을 통해 사용되는 단독 연결 목록과 연동됩니다.

장치 드라이버의 경우 LIST_ENTRY이 있지만 사용자 모드로 전환 할 수 있는지 확실하지 않습니다.

많은 알고리즘의 서적과 웹 사이트에는 C로 쉽게 이식 할 수있는 링크드 목록 구현이 포함되어 있습니다. 자신 만의 롤링은 그리 어렵지 않습니다.

관련 문제