C語言版STL

找到一個C語言實現的STL,目測似乎比C++版本的容易理解。沒有太多不常用的技巧和難以理解的宏。而且貼心的提供了build in windows 的編譯方式,爲不同平臺的學習者調試學習提供了便利。

而且也可以學習下C語言的設計模式。有空學習下。

 

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

 

libcstl

libcstl項目已經遷移到github,項目地址https://github.com/activesys/libcstl

 

 

部分介紹摘錄自 http://code.google.com/p/libcstl/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章