C용 컨테이너 클래스 / 라이브러리
C 컨테이너 도서관 아는 사람 있어?나는 C++ STL과 같은 방식으로 링크된 목록, 배열, 해시 테이블 등의 표준 구현을 제공하는 것을 찾고 있다.주요 우려 사항은 다음과 같다.
- 클라이언트 코드는 라이브러리를 수정하지 않고도 여러 가지 데이터 유형에 대한 컨테이너를 만들 수 있어야 한다.
- 컨테이너를 만들고 사용하기 위한 인터페이스는 직관적이어야 한다.
지도/사전 컨테이너의 C 구현을 찾다가 SGLIB를 우연히 발견했어.아쉽게도 지도는 없지만 네가 물어본 컨테이너가 포함된 것 같아.나는 그것이 얼마나 좋은지 모르겠다.
Sglib는 우수한 일반 데이터 구조 라이브러리다.라이브러리는 현재 다음을 위한 일반 구현을 제공하고 있다.
- 정렬 배열
- 링크된 목록
- 정렬된 연결 목록
- 이중으로 연결된 목록
- 검붉은 나무들
- 해시 용기
매우 빠르다.그 입담은 더 빨라.그것은 표준 템플릿 라이브러리에서 영감을 얻었다.여기에서 다운로드
또 다른 해결책은 매력적인 혼돈 소트웨어다.C 매크로 라이브러리:
kbtree.h: C에 있는 효율적인 B-트리 라이브러리.
Khash.h: 빠르고 가벼운 C의 해시 테이블 라이브러리.
kvec.h: C의 단순 벡터 용기.
Kulesh Shanmugasundaram은 Linux 커널 링크드 목록과 Linux 커널 링크드 목록을 기반으로 하는 일반 해시 테이블을 제시한다.
Sglib와 매력적인 혼돈 소트웨어, 리눅스 커널 링크드 리스트는 C 매크로 라이브러리다.사용.void*
C에서 일반 컨테이너를 구현하는 것은 비효율적일 수 있다.C 매크로는 C++ 템플릿을 모방하며 C++ 템플릿만큼 효율적이다.
Chuck Falconer는 C++ 인터페이스가 포함된 적절한 해시 라이브러리를 가지고 있으며 다운로드하려면 웹 페이지에서 hashlib.zip을 클릭하십시오.
벤 파프는 바이너리 검색 트리, AVL 트리, 레드 블랙 트리, 스레드 버전 등을 포함한 대부분의 주요 트리 구조를 구현하는 GNU libavl이라는 매우 훌륭하고 문서화된 바이너리 트리 라이브러리를 가지고 있다.
libavl은 LGPL (버전 2.0.3 기준), 해시립은 GPL이다.
전자가 언어에 의해 직접 지원되고 후자는 도서관을 보증하지 않고 구현하기에 충분히 사소한 만큼 배열과 링크된 목록이 진행되는 한 당신이 무엇을 찾고 있는지 잘 모르겠다.
ccl은 어때?이것은 C를 위한 컨테이너 도서관이다.어쩌면 너한테 가장 잘 맞을지도 몰라.당신은 https://code.google.com/p/ccl/을 볼 수 있다.그것을 즐기세요.
나는 한슨의 'C 인터페이스와 구현' 책에서 키워온 도서관을 사용해 왔다.그의 출처는 다음과 같다.
모든 것이 추상 데이터 유형이다.목록, 세트, 표(지도)가 있다.
#include "queue.h"
단일 연결 목록, 단일 연결 테일 대기열, 목록 및 테일 대기열의 구현에 액세스하십시오.
나는 D. J. 번스타인(http://cr.yp.to/djbdns.html)이 임의의 객체를 메모리에 저장하기 위한 일반적인 캐시를 찾았다.djdns tarball에서 cache.h와 cache.c를 찾아봐.
내가 들어본 것 중 몇 가지는 (그러나 사용하지 않은) 것이다.
- 글립
- iMatix 표준 기능 라이브러리
- 리눅스 커널 헤더에서 서로 다른 요소(예: 목록)
이것은 대부분의 용기와 일부 알고리즘을 포함하는 것처럼 보인다.또한 라이센스는 없으며, 모든 헤더에는 '코드는 제한 없이 사용될 수 있다.'라는 내용이 포함되어 있다. http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=13867&lngWId=3
참조URL: https://stackoverflow.com/questions/305611/container-class-library-for-c
'Programing' 카테고리의 다른 글
VUE2 하위에서 상위로 매개 변수 전달 (0) | 2022.05.19 |
---|---|
Vue + Vuex 프로젝트 구조화 (0) | 2022.05.19 |
CPU 아키텍처 컴파일 시간 탐지 (0) | 2022.05.19 |
vue에서 {ref}을(를) 가져오는 동안 오류가 발생하는 중? (0) | 2022.05.19 |
사용자 정의 유효성 검사 규칙이 작동하지 않음 (0) | 2022.05.19 |