- 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_hash_generate_t)μ λλ± λΉκ΅(cc_equal_t)λ₯Ό μ¬μ©μ μ 곡. - ν μ΄λΈ ν¬κΈ°(λ²ν· μ)λ μμ± μ κ²°μ .
- μ€λ³΅ ν€λ νμ©λμ§ μμ(μΆκ° μ κΈ°μ‘΄ ν€κ° μμΌλ©΄ μ€ν¨).
- λΉ νλͺ© / μ κ±°λ νλͺ©μ ꡬλΆνμ¬ μμ ν κ²μ μ°μμ± μ μ§.
- μμ λ²νΌ:
cc_bucket_t
- ν€/κ° μμ μ μ₯νλ ν΄μ λ§΅.
- μ€ν μ΄λλ μ± μ ν νλ‘λΉ(ꡬνμ κΈ°λ³Έ) μ¬μ©.
- ν΄μ κ° μμ±κΈ°(
cc_hash_generate_t)μ λλ± λΉκ΅(cc_equal_t)λ₯Ό μ¬μ©μ μ 곡. - ν μ΄λΈ ν¬κΈ°(λ²ν· μ)λ μμ± μ κ²°μ .
- μ€λ³΅ ν€λ νμ©λμ§ μμ(μΆκ° μ κΈ°μ‘΄ ν€κ° μμΌλ©΄ μ€ν¨).
- λΉ νλͺ© / μ κ±°λ νλͺ©μ ꡬλΆνμ¬ μμ ν κ²μ μ°μμ± μ μ§.
- μμ λ²νΌ:
cc_pair_bucket_t
- μμμ μ°μ μμλ₯Ό κΈ°λ°μΌλ‘ ν ν.
- binary heap(min-heap) μλ£κ΅¬μ‘° μ¬μ©.
- μ λ ¬ κΈ°μ€ μ¬μ©μ μ½λ°±(
cc_less_t)μΌλ‘ μ 곡. - μμ λ²νΌ:
cc_element_t