首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

三十分钟掌握STL

译者:kary contact:karymay@163.net STL概述 STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。...这是STL灵活性的一个代价。STL不保证检测毫无道理的错误。 迭代器的类型 对于STL数据结构和算法,你可以使用五种迭代器。...提示 必须记住STL使用模板。因此,STL函数自动根据它们使用的数据类型来构造。...否定函数对象 所谓否定(negator)函数对象,就是它从另一个函数对象创建而来,如果原先的函数返回真,则否定函数对象返回假。有两个否定函数对象:not1()和not2()。...not1()接受单目函数对象,not2()接受双目函数对象。否定函数对象通常和帮定器一起使用。

2K80
您找到你想要的搜索结果了吗?
是的
没有找到

【C++】STL 标准模板库 ③ ( STL 容器简介 | STL 容器区别 | STL 容器分类 | 常用的 STL 容器 )

一、STL 容器简介 1、STL 容器区别 STL 容器 用于管理 一组 数据元素 , 不同类型的 STL 容器 的区别 主要是 节点 和 节点之间的关系模型 不同 ; 容器的内存空间是否连续 : 向量...插入到中间 , 插入到首部 , 插入到尾部 ; 容器中的元素移除限制 : 是否允许 移除中间元素 , 移除首部元素 , 移除尾部元素 ; 数据结构 主要是 研究 节点 与 节点 之间关系的 ; 2、STL...容器分类 STL 容器 分为 2 大类 , 分别是 " 序列式容器 " 和 " 关联式容器 " ; 序列式容器 : Sequence Containers , 容器中每个元素的位置都是固定的 , 元素的位置取决于插入元素的...Set , 多重集合 MultiSet , 映射 Map , 多重映射 MultiMap 是 关联式容器 ; 如下图所示 , 关联式容器的元素位置与特定规则有关 , 与插入时间和位置无关 ; 3、常用的 STL...容器 常用的 STL 容器 : 向量 vector : 是连续存储的元素 , 其内存是连续的 ; 可以 访问和修改任意元素 , 但在 序列尾部 进行 插入 和 删除时 , 具有常量时间复杂度 ; 需导入

20730

STL

STL:泛型程序设计(程序的通用性) 1、STL定义 STL(标准模板库)惠普实验室开发的一系列软件的统称。STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。...STL现在是C++的一部分,被内建在你的编译系统之内。...2、STL头文件 在C++标准中,STL被组织为下面的17个头文件:、、、、、、<list...3、组成部分: STL可分为容器、迭代器、空间配置器、配接器、算法、仿函数六个部分。 容器部分主要由头文件、、、、 、以及组成。...适配器(改变对应接口的组件): 适配器,在STL中扮演着转换器的角色,本质上是一种设计模式,用于一种接口转换成另一种接口,从而使原本不兼容的接口能够很好地一起运作。

79630

走近STL- STL概论

STL的前世今生 STL,虽然是一套程序库,但却不仅仅是一套一般印象中的程序库,而是一个具有划时代意义的、有着深厚理论基础的发明。 说是软件组件史上的一大突破,也当之无愧。...为了建立数据结构与算法的一套标准,降低其间的耦合关系,以及提升各自的交互性、弹性、独立性,C++社群中诞生了STL. STL是一个开源项目,所以有很多个版本。...在我的这个专栏中使用SGI STL版本,不论是符号命名,还是编码风格上,这个版本的可读性非常高。...STL可不止有容器 对于大部分接触过STL的人来说,对于STL的印象应该是极好的,不过大部分人可能也是简单的将容器和STL的全部画起了等号,最多再加上算法,毕竟我们使用STL常用到的也就那两套头文件。...配置器 空间配置与管理,如果要深入了解STL代码,则这一块将会是奠基石一般的存在。 来看一下STL六大组件联合工作的图示: ?

82220

C++ stl_stl函数

STL(Standard Template Library)标准模板库,在我们 c++标准程序库中隶属于 STL 的占到了 80%以上。...STL六大组件简介 STL提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接器)、空间配置器。...STL的优点很明显了: STL 是 C++的一部分,因此不用额外安装什么,它被内建在你的编译器之内。 STL 的一个重要特性是将数据和操作分离。数据由容器类别加以管理,操作则由可定制的算法定义。...<< endl; } else { cout << "找到" << *it << endl; } //排序 二元函数对象 sort(v.begin(), v.end(), not2...>())); for_each(v.begin(), v.end(), [](int val){ cout << val << " "; }); } //not1 对一元函数对象取反 //not2

2.4K31

STL学习笔记(1)STL 概述

STL 基本概念 STL(Standard Template Library,标准模板库),是惠普实验室开发的一系列软件的统 称。...STL(Standard Template Library)标准模板库,在我们 c++标准程序库中隶属于 STL 的占到了 80%以上。...STL 六大组件简介 STL 提供了六大组件,彼此之间可以组合套用,这六大组件分别是:容器、算法、迭代器、仿函数、适配器(配接 器)、空间配置器。...STL 优点 STL 是 C++的一部分,因此不用额外安装什么,它被内建在你的编译器之内。 STL 的一个重要特性是将数据和操作分离。数据由容器类别加以管理,操作则由可定制的算法定义。...程序员可以不用思考 STL 具体的实现过程,只要能够熟练使用 STL 就 OK 了。这样他们就可以把精力放在程序开发的别的方面。 STL 具有高可重用性,高性能,高移植性,跨平台的优点。

88630

三十分钟掌握STL

译者:kary contact:karymay@163.net STL概述 STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。...这是STL灵活性的一个代价。STL不保证检测毫无道理的错误。 迭代器的类型 对于STL数据结构和算法,你可以使用五种迭代器。...提示 必须记住STL使用模板。因此,STL函数自动根据它们使用的数据类型来构造。...否定函数对象 所谓否定(negator)函数对象,就是它从另一个函数对象创建而来,如果原先的函数返回真,则否定函数对象返回假。有两个否定函数对象:not1()和not2()。...not1()接受单目函数对象,not2()接受双目函数对象。否定函数对象通常和帮定器一起使用。

1.2K40

【C++】STL 标准模板库 ① ( STL 简介 | STL 基本概念 | STL 主要内容 )

一、STL 简介 1、STL 概念 C++ 语言 的 STL " 标准模板库 " 英文全称 " Standard Template Library " , STL 是一套强大的 C++ 库 , 其中包含了各种通用的...数据结构和算法 , 如 : 向量、列表、队列、排序等 ; STL 是 C++ 标准的一部分 , 所有的 C++ 编译器 都应该支持该标准 ; 2、STL 主要内容 STL 的主要内容 : 容器 : 存储数据的类...的类 ; 通过迭代器 , 可以顺序访问容器中的每个元素 , 而不改变容器中元素的位置 ; 常量时间复杂度 指的是在执行某个操作时 , 所花费的时间与输入规模无关 , 通常为 O(1) ; 二、STL...代码示例 在下面的代码中 , 使用了 STL 容器中的 vector 向量容器 , 使用 sort 排序算法 对 vector 向量中的元素进行了排序 ; 使用 STL 容器中的 vector 向量容器需要导入...容器中的 vector 向量容器需要导入的头文件 #include "vector" // 使用 STL 算法需要导入的头文件 #include "algorithm" int main()

15330

STL简介

,可读性比较差,阅读困难,其中以sgi stl的可读性最好,侯捷先生专门写了一本书>剖析stl的源代码,他所用的源代码就是本资源的代码。     ...如果查阅任何一个版本的STL源代码,你就会发现,模板 作为构成整个STL的基石是一件千真万确的事情。除此之外,还有许多C++的新特性为STL的实现提供了方便。...有趣的是,对于STL还有另外一种解释--STepanov & Lee,前者是指Alexander Stepanov,STL的创始人;而后 者是Meng Lee,她也是使STL得以推行的功臣,第一个STL...STL的 目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用额外安装 什么。 (摘自于百度百科) 标准模板库 STL被内建在你的编译系统之内。   ...STL有所了解。

1.3K20

STL简介

目录 1.什么是STL 2.STL的版本 3.STL的六大组件 4.STL的重要性 5.如何学习STL 6.STL的缺陷 ---- 1.什么是STL STL(standard template libaray...HP 版本--所有STL实现版本的始祖。  P. J. 版本:由P. J....3.STL的六大组件  4.STL的重要性 是C++的重要部分,不学好STL,就不能说自己会C++。在面试,笔试和工作中,C++的STL会一直陪伴着C++工程师。...5.如何学习STL 学习STL的三个境界:能用,明理,能扩展 。 6.STL的缺陷 1. STL库的更新太慢了。这个得严重吐槽,上一版靠谱是C++98,中间的C++03基本一些修订。...C++11出来已经相隔了13年,STL才进一步更新。 2. STL现在都没有支持线程安全。并发环境下需要我们自己加锁。且锁的粒度是比较大的。 3. STL极度的追求效率,导致内部比较复杂。

45730
领券