词条 | libcstl |
释义 | libcstl是使用标准C编写的通用的数据结构和常用算法的库, 它模仿STL的接口形式, 包括序列容器,关联容器,容器适配器,迭代器,函数,算法等.libcstl为C编程中的数据管理提供了方便易用的程序库。libcstl分为容器,迭代器,函数和算法四部分,此外2.0版本还添加了类型机制,这是一种为用户提供了方便使用自定义类型的机制。 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。 |
随便看 |
百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。