libcstl

libcstl是使用標準C編寫的通用的數據結構和常用算法的庫, 它模仿STL的接口形式, 包括序列容器,關聯容器,容器適配器,疊代器,函式,算法等.libcstl為C編程中的數據管理提供了方便易用的程式庫

基本介紹

  • 中文名libcstl
  • 類型:庫
  • 組成:容器,疊代器,算法等
  • 函式:libcstl提供了大量的函式
  • 疊代器:對容器的特定範圍的數據
  • 作用:提供了方便使用自定義類型的機制
基礎信息,libcstl基本概念,容器,疊代器,算法,函式,libcstl適用的數據類型,深入的了解libcstl-2.0,

基礎信息

libcstl分為容器,疊代器,函式和算法四部分,此外2.0版本還添加了類型機制,這是一種為用戶提供了方便使用自定義類型的機制。

libcstl基本概念

libcstl由多個分組成,容器,疊代器,算法和函式 容器: 容器以某種結構形式管理數據的集合,每一種容器都有各自的特點. 疊代器: 疊代器與容器相關聯,套用與容器或容器的子集,它的主要好處在於為容器提供了一個統一的接口.疊代器是容器 和算法之間的橋樑,它使得算法獨立於特定的容器. 算法: 算法是對數據集合進行某些操作,它可以排序,查找,修改或其他一些操作.算法使用疊代器作為輸入,這樣算法可 以獨立於容器,實現在任意容器上的操作.同時算法還使用特定的函式對容器中的數據進行特定的操作. 函式: 函式只是規定了算法中使用的函式形式,並且定義了一些算法中常用的函式,可以作為算法的自定義規則.
libcstl

容器

容器可以用來排序數據,管理和存儲數據,所以為了不同的目的libcstl提供了不同的容器.容器分為: 序列容器: 序列容器主要用來存儲和管理數據,容器中的數據的順序與數據插入到容器中的次序有關,而與數據本身的值無關. libcstl提供的序列容器有:vector_t, list_t, deque_t, slist_t. 關聯容器: 關聯容器更關係容器中數據的排列順序,容器中數據的順序是排序的與數據本身有關而與數據插入到容器中的次 序無關.libcstl 提供的關聯容器有:set_t, map_t, multiset_t, multimap_t, hash_set_t, hash_map_t, hash_multiset_t, hash_multimap_t. 容器適配器: 除了以上這些容器之外,libcstl為了特殊的目的還提供了容器適配器,它們都是基本的容器實現的. 容器適配器有:stack_t,queue_t,priority_queue_t.字元串類型: string_t類型可以像c-str一樣拷貝,賦值,比較而不必考慮是否有足夠的記憶體來保存字元串,會不會越界等等. 因為string_t可以動態增長,並且易於使用,你可很方便的插入刪除字元或子串,方便的替換等等.

疊代器

疊代器是對容器的特定範圍的數據進行遍歷的類型,這個範圍可能是整個容器或者是容器的一部分.疊代器表示的 是容器中數據的位置的數據結構,它將各個容器的數據位置統一,使用同樣的接口進行操作。各個容器都提供了疊代器結構, 同時各種算法都是通過疊代器來操作的,所以說疊代器是容器和算法之間聯繫的橋樑。

算法

libcstl為了處理數據提供了許多算法,例如查找,排序,拷貝,修改還有算術操作.算法不屬於任何一種容器,它能 夠處理任何容器中的數據,算法都是以疊代器作為輸入.

函式

libcstl提供了大量的函式,這些函式主要用來為算法提供擴展功能.算法中每一個算法都有一個後綴為if的版本,這個版本接受函式作為 操作的規則.同時用戶可以自定義函式來擴展算法功能。

libcstl適用的數據類型

在實際的編程過程中經常使用的是自定義的數據結構類型,libcstl-1.0不能夠有效的 處理這些數據類型的,但是libcstl-2.0.0相對於1.0.1來說最大的提高就是增強了對各種數據類型的處理能力。libcstl-2.0.0有效的 處理絕大部分的數據類型。它將數據類型分為3類:
C語言內建類型:如:int, long, double等。 用戶自定義類型:用戶自己定義的數據結構。 libcstl內建類型:如vector_t, set_t, hash_multimap_t等。 其中libcstl內建類型是用戶自定義類型的特例,只是libcstl對於libcstl內建類型進行了默認的處理。

深入的了解libcstl-2.0

想深入的了解libcstl-2.0請參考源碼包中doc/目錄下的libcstl_user_guide.pdf和libcstl_reference_manual.pdf。

相關詞條

熱門詞條

聯絡我們