常用的C語言算法庫 libcstl

fmms 14年前發布 | 82K 次閱讀 C語言 算法

  1. libcstl是使用標準C編寫的通用的數據結構和常用算法的庫, 它模仿STL的接口形式, 包括序列容器,關聯容器,容器適配器,迭代器,函數,算法等.libcstl為C編程中的數據管理提供了方便易用的程序庫。
  2. libcstl分為容器,迭代器,函數和算法四部分,此外2.0版本還添加了類型機制,這是一種為用戶提供了方便使用自定義類型的機制。
  3. 容器一種用于保存數據的類型,按照功能分為序列容器,關聯容器和容器適配器。序列容器是按照數據插入的順序保存數據,關聯容器中保存的數據是根據某種規則排序的,容器適配器是在容器的基礎上對容器進行封裝從而實現特定的功能,容器適配器不支持迭代器操作,因此適配器也不能夠用于算法操作。
  4. 迭代器表現的是一種指針的語義,它是對位置操作的一種類型,但是迭代器是通用的,通過迭代器可以實現對任何容器的位置操作,同時它也是容器和算法的橋梁,算法通過迭代器對容器中的數據進行操作。
  5. 算法是通用的,它通過迭代器來操作數據區間中的數據,這樣就可以對任何符合要求的容器以及數據區間應用算法。正式因為通用的關系,相同功能的算法和容器本身的操作函數,后者更高效。
  6. 函數以及謂詞是規范算法行為的,可以使用特定的函數或者算法來改變算法的行為,帶有if后綴的算法都要求使用函數或者謂詞。
  7. 字符串是一種特殊的容器,它只保存字符類型,同時也支持許多針對字符串特有的操作。
  8. 類型機制是2.0添加的新功能,它為用戶使用自定義類型提供了便利,可以讓用戶像使用基本類型一樣使用自定義類型。

libcstl 2與1相比有了很大的改進,下面列出了不同點:

類型和功能 1 2 說明
deque_t 支持 支持
list_t 支持 支持
vector_t 支持 支持
slist_t 支持 支持
set_t 支持 支持
multiset_t 支持 支持
map_t 支持 支持 更新了默認的數據比較規則。
multimap_t 支持 支持 更新了默認的數據比較規則。
hash_set_t 支持 支持 更新了默認的哈希函數。
hash_multiset_t 支持 支持 更新了默認的哈希函數。
hash_map_t 支持 支持 更新的默認的哈希函數和默認的數據比較規則。
hash_multimap_t 支持 支持 更新的默認的哈希函數和默認的數據比較規則。
priority_queue_t 支持 支持
queue_t 支持 支持
stack_t 支持 支持
多種iterator_t 支持 支持
range_t
支持 一種表示數據范圍的類型。
數值算法 支持 支持
通用算法 支持 支持
針對基本類型的函數 支持 支持
針對libcstl內部類型的函數
支持 增加了針對容器以及工具類型的函數和謂詞。
string_t 支持 支持
pair_t 支持 支持 更新了默認的數據比較規則。
bool_t 支持 支持
支持c style字符串
支持 增加了對于c style字符串類型的支持。
支持用戶自定義類型 部分支持 支持 通過類型注冊機制完善了對用戶自定義類型的支持。
類型注冊
支持 增加了類型注冊和類型復制功能。
支持Linux 支持 支持
支持Windows
支持 添加了VS2005和VS2008的編譯工程。

項目主頁:http://www.baiduhome.net/lib/view/home/1326094743500

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!