阿牧路泽

哪有那么多坚强,无非是死扛罢了
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

随笔分类 -  C++ STL

摘要:容器适配器 stack、queue、priority_queue 都不支持任一种迭代器,它们都是容器适配器类型,stack是用vector/deque/list对象创建了一个先进后出容器;queue是用deque或list对象创建了一个先进先出容器;priority_queue是用vector/de 阅读全文

posted @ 2018-10-22 17:29 阿牧路泽 阅读(332) 评论(0) 推荐(0)

摘要:一、String类 string类本不是STL的容器,但是它与STL容器有着很多相似的操作,因此,把string放在这里一起进行介绍。之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必担心内存是否足够、字符串长度等等,而且作为一个类出现,他集成的操作函 阅读全文

posted @ 2018-10-22 16:04 阿牧路泽 阅读(687) 评论(0) 推荐(0)

摘要:一、STL算法分类 STL中的算法大致可以分为以下七类: 不变序列算法 变值算法 删除算法 变序算法 排序算法 有序区间算法 数值算法 大多重载的算法都是有两个版本的 用 “==” 判断元素是否相等, 或用 “<”来比较大小。 多出一个类型参数 “Pred” 和函数形参 “Pred op” : 通过 阅读全文

posted @ 2018-10-22 15:22 阿牧路泽 阅读(208) 评论(0) 推荐(0)

摘要:1、基本概念 适配器, 在STL中扮演着转换器的角色,本质上是一种设计模式,用于将一种接口转换成另一种接口,从而是原本不兼容的接口能够很好地一起运作。适配器不提供迭代器。 2、基本类型 根据目标接口的类型,适配器可分为以下几类: (1) 改变容器的接口,称为容器适配器; (2)改变迭代器的接口,称为 阅读全文

posted @ 2018-10-22 15:11 阿牧路泽 阅读(632) 评论(0) 推荐(0)

摘要:一、仿函数(函数对象) 仿函数又称函数对象,函数对象首先是一个对象,即某个类的实例。其次,函数对象的行为和函数一致,即是说可以像调用函数一样来使用函数对象,如参数传递、返回值等。这种行为是通过重载类的()操作符来实现的。 【示例】 其实我们早就开始使用函数对象了,当你写下sort(v.begin() 阅读全文

posted @ 2018-10-22 15:05 阿牧路泽 阅读(571) 评论(0) 推荐(0)

摘要:一、迭代器 迭代器(iterator):扮演容器与算法之间的胶合剂,是所谓的“泛型指针”。 迭代器模式:提供一种方法,使之能够依序寻访某个聚合物(容器)所含的各个元素,而又无需暴露该聚合物的内部表达方式。 STL的中心思想在于:将数据容器和算法分开,彼此独立设计,最后再以一贴胶着剂(iterator 阅读全文

posted @ 2018-10-22 14:27 阿牧路泽 阅读(248) 评论(0) 推荐(0)

摘要:一、容器的共通能力 1、所有容器提供的都是value语义,而非reference语义,容器执行插入元素的操作时,内部实施拷贝动作。所以STL容器内存储的元素必须能够被拷贝(必须提供拷贝构造函数); 2、每个容器都提供可返回迭代器的函数,运用返回的迭代器就可以访问元素。 3、通常STL不会丢出异常。要 阅读全文

posted @ 2018-10-19 16:32 阿牧路泽 阅读(215) 评论(0) 推荐(0)

摘要:一、关联式容器 关联容器在存储时是以关键字key为下标进行存储的,标准的STL关联容器分为set和map两大类,之后的衍生版本有multiset和multimap,它们的区别是在存储时是否容许出现关键字key相同的情况。这些容器的底层机制均以RB-tree(红黑树)完成。 此外,SGI STL还提供 阅读全文

posted @ 2018-10-19 16:04 阿牧路泽 阅读(467) 评论(0) 推荐(0)

摘要:一、序列式容器 Vector中所采用的数据结构非常简单:线性连续空间。当分配空间被占满而仍然需要添加元素时,vector便会进行一场空间重新配置的大工程!在这里,程序员需要注意的是,一旦引起空间重新配置,之前指向原vector的所有迭代器就都失效了,这一点在工程中容易引起bug。 List则对空间的 阅读全文

posted @ 2018-10-19 14:07 阿牧路泽 阅读(288) 评论(0) 推荐(0)

摘要:一、基本概念 STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序库(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里 阅读全文

posted @ 2018-10-16 22:07 阿牧路泽 阅读(287) 评论(0) 推荐(0)