Repository files navigation
C 언어로 작성된 범용 경량 컨테이너 라이브러리.
C++의 STL의 컨테이너 기능을 소형 MCU에서 사용하기 위해 제작.
(미션 크리티컬 시스템 제약 사항을 적용하기 위해) 동적 HEAP 메모리 사용이 없음.
비침입형 컨테이너.
컨테이너 내부 요소 버퍼는 컨테이너 생성 시 제공 해야함.
요소 버퍼의 갯수가 컨테이너의 최대 용량을 결정.
요소 버퍼는 사용자가 준비해야 함.
모든 컨테이너는 요소 포인터만 저장.
요소의 데이터 메모리는 외부에서 할당/해제(메모리 할당/해제는 호출자 책임).
요소의 데이터 메모리는 Simple Segregated Storage 통해 고정 메모리 풀을 이용하여 사용.
라이브러리는 기본적으로 스레드 안전하지 않음.
RTOS 사용시 태스크간은 잠금기능을 수행 해야 함.
인덱스 기반의 순차 컨테이너.
요소를 뒤에 추가하거나 임의 위치에 삽입/삭제 가능.
삽입 시 새 요소는 지정한 인덱스에 삽입됨(insert-before semantics).
요소 버퍼: cc_element_t
double-ended queue(양방향 큐).
앞/뒤에서의 삽입과 제거 지원.
push 계열은 용량 초과 시 false 반환.
pop 계열은 비어있으면 NULL 반환.
요소 버퍼: cc_element_t
FIFO 큐.
내부적으로 cc_deque를 재사용한 얇은 래퍼.
cc_deque의 push_back/pop_front을 이용해 FIFO 동작 제공.
요소 버퍼: cc_element_t
LIFO 스택.
내부적으로 cc_deque를 재사용한 얇은 래퍼.
cc_deque의 push_back/pop_back을 이용하여 LIFO 동작 제공.
요소 버퍼: cc_element_t
단일 연결 리스트(singly-linked list).
내부 노드는 사용자 제공 배열을 통해 Simple Segregated Storage로 풀 관리.
노드 할당/해제는 라이브러리 내부의 고정 용량 메모리 풀에서 수행.
노드 포인터를 이용한 O(1) 삽입/삭제 지원.
요소 버퍼: cc_snode_t
이중 연결 리스트(doubly-linked list).
내부 노드는 사용자 제공 배열을 통해 Simple Segregated Storage로 풀 관리.
노드 할당/해제는 라이브러리 내부의 고정 용량 메모리 풀에서 수행.
노드 포인터를 이용한 O(1) 삽입/삭제 지원.
노드 단위 삽입/삭제와 순회 지원.
삽입 시 새 노드는 지정한 노드의 앞에 삽입됨(insert-before semantics).
요소 버퍼: cc_dnode_t
요소를 정렬된 순서로 유지하는 컨테이너
이진 탐색 기반 삽입 위치 탐색.
정렬 기준과 동등 비교는 사용자 콜백(cc_less_t, cc_equal_t)으로 제공.
중복 키는 허용되지 않음(추가 시 기존 키가 있으면 실패).
요소 버퍼: cc_element_t
키/값 쌍을 정렬된 순서로 유지하는 컨테이너
이진 탐색 기반 삽입 위치 탐색.
정렬 기준과 동등 비교는 사용자 콜백(cc_less_t, cc_equal_t)으로 제공.
중복 키는 허용되지 않음(추가 시 기존 키가 있으면 실패).
요소 버퍼: cc_pair_t
cc_unordered_set (오픈 어드레싱 해시 테이블)
해시 기반 빠른 검색/삽입/삭제를 지원하는 테이블
오픈 어드레싱 선형 프로빙(구현상 기본) 사용.
해시 값 생성기(cc_hash_generate_t)와 동등 비교(cc_equal_t)를 사용자 제공.
테이블 크기(버킷 수)는 생성 시 결정.
중복 키는 허용되지 않음(추가 시 기존 키가 있으면 실패).
빈 항목 / 제거된 항목을 구분하여 삭제 후 검색 연속성 유지.
요소 버퍼: cc_bucket_t
cc_unordered_map (정렬되지 않은 맵, 해시 맵)
키/값 쌍을 저장하는 해시 맵.
오픈 어드레싱 선형 프로빙(구현상 기본) 사용.
해시 값 생성기(cc_hash_generate_t)와 동등 비교(cc_equal_t)를 사용자 제공.
테이블 크기(버킷 수)는 생성 시 결정.
중복 키는 허용되지 않음(추가 시 기존 키가 있으면 실패).
빈 항목 / 제거된 항목을 구분하여 삭제 후 검색 연속성 유지.
요소 버퍼: cc_pair_bucket_t
cc_priority_queue (우선순위 큐)
요소의 우선순위를 기반으로 한 큐.
binary heap(min-heap) 자료구조 사용.
정렬 기준 사용자 콜백(cc_less_t)으로 제공.
요소 버퍼: cc_element_t
About
C Container Library for Embedded Systems
Topics
Resources
Stars
Watchers
Forks
You can’t perform that action at this time.