摘要: 在代码中使用initializer_list对象,需包含头文件initializer_list(C++11)。 该模型包含成员函数begin( ) 和 end( ) 以及 size( ),size( )返回元素数。 可对其使用初始化列表进行初始化或赋值。 可按值传递initializer_list对 阅读全文
posted @ 2020-08-23 23:17 孱陵 阅读(299) 评论(0) 推荐(0) 编辑
摘要: vector、valarray和array这三个类模板是由不同的小组开发的,用于不同的目的: vector模板类: 它是一个容器类和算法系统的一部分,支持面向容器的操作,如排序、插入、重新排列、搜索 将数据转移到其它容器中等。 valarray模板类: 它面向数值计算,不是STL的一部分, 如: 无 阅读全文
posted @ 2020-08-23 23:01 孱陵 阅读(551) 评论(0) 推荐(0) 编辑
摘要: C++还提供了一些更为专用的类库: complex类模板 声明于complex头文件 适用于复数 包含用于float、long、long double的具体化 提供了标准的复数运算以及能够处理复数的标准函数 random头文件(C++11)提供了许多随机数功能 valarray类模板: 由头文件va 阅读全文
posted @ 2020-08-23 21:53 孱陵 阅读(134) 评论(0) 推荐(0) 编辑
摘要: STL是一个库,其组成部分被设计成协同工作。STL组件是工具,但也是创建其它工具的基本部件。 ### map类有一个特征:可以使用数组表示法(将键用作索引)来访问存储的值 ### 如果键无效,则对应的值将为 0 使用 STL 时应尽可能减少要编写的代码。STL通用、灵活的设计将节省大量工作。 另外, 阅读全文
posted @ 2020-08-23 21:47 孱陵 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 有时可以选择使用STL方法或STL函数。通常方法是更好的选择。 ### 首先,它更适合特定的容器; ### 其次,作为成员函数,它可以使用模板类的内存管理工具,从而在需要时调整容器的长度。 例如: 删除链表元素可使用remove( _iterator x)方法,该方法自动删除相应值和调整链表长度。 阅读全文
posted @ 2020-08-23 21:18 孱陵 阅读(93) 评论(0) 推荐(0) 编辑
摘要: string类虽然不是STL的组成部分,但设计它时考虑到了STL。因此它包含: begin() end() rbegin() rend() …… next_permutation( begin_iterator, end_iterator)算法: ### 将区间内容转换为下一种排列方式。 ### 对 阅读全文
posted @ 2020-08-23 21:04 孱陵 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 对算法进行分类的方式之一是按结果放置的位置进行分类: 就地完成工作 创建拷贝 有些算法有两个版本: 就地版本 复制版本:规定名称以 _copy 结尾 ### 对于复制算法,统一的约定是: ### 返回一个迭代器,该迭代器指向复制的最后一个值后面的一个位置。 ### 另一个常见的变体是:有些函数根据应 阅读全文
posted @ 2020-08-23 19:06 孱陵 阅读(115) 评论(0) 推荐(0) 编辑
摘要: STL将算法库分成4组: 非修改式序列操作 ### 对区间中的每个元素进行操作,但不修改容器的内容。 修改式序列操作 ### 对区间中的每个元素进行操作,可以修改容器的内容。 排序和相关操作 这里包含多个排序函数(sort( ))和其它各种函数,包括集合操作 通用数字计算 包括这些函数: 将区间的内 阅读全文
posted @ 2020-08-23 17:44 孱陵 阅读(120) 评论(0) 推荐(0) 编辑
摘要: STL包含很多处理容器的非成员函数,它们的总体设计是相同的: 都使用迭代器来标识要处理的数据区间和结果的放置位置 有些函数接受一个函数对象参数,并使用其来处理数据 由上引出下面对于算法函数的讨论: 对于算法函数设计,有两个主要的通用部分: 使用模板来提供泛型 使用迭代器来提供访问容器中数据的通用表示 阅读全文
posted @ 2020-08-23 17:34 孱陵 阅读(128) 评论(0) 推荐(0) 编辑
摘要: STL有五个函数符自适应的相关概念: 自适应生成器 自适应一元函数 以适应二元函数 自适应谓词 自适应二元谓词 函数符成为自适应的原因是,它携带了标识参数类型和返回类型的typedef成员,这些成员分别是: result_type first_argument_type second_argumen 阅读全文
posted @ 2020-08-23 17:19 孱陵 阅读(357) 评论(0) 推荐(0) 编辑
摘要: ### STL定义了多个基本函数符,它们执行诸如将两个值相加、比较两个值是否相等等操作。提供这些函数对象 ### 是为了支持将函数作为参数的STL函数,因为‘ + ’、‘ - ’、‘ * ’、‘ / ’等符号是内置的运算符,而不是函数符。 ### 头文件functional(以前为function. 阅读全文
posted @ 2020-08-23 16:33 孱陵 阅读(168) 评论(0) 推荐(0) 编辑
摘要: STL定义了函数符概念: 生成器:不用参数就可以调用的函数符 一元函数:用一个参数可以调用的函数符 二元函数:用两个参数可以调用的函数符 对上述概念的改进: 谓词:返回bool值的一元函数 二元谓词:返回bool值的二元函数 ### remove_if成员: ### list模板有一个将谓词作为参数 阅读全文
posted @ 2020-08-23 16:15 孱陵 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 很多STL算法都使用函数对象——函数符。 ### 函数符是可以以函数方式与( )结合使用的任意对象。 ### 这包括函数名、指向函数的指针和重载了( )运算符的类对象(即定义了 ### operator()()的类) 重载的( )运算符使得能够像使用函数那样使用对象。 ### 对于for_each函 阅读全文
posted @ 2020-08-23 14:29 孱陵 阅读(158) 评论(0) 推荐(0) 编辑
摘要: ### 无序关联容器是对容器概念的另一种改进。 ### 与关联容器一样,无序关联容器也将值与键关联起来,并使用键来查找值 ### 但底层的差别在于,关联容器是基于树结构的,而无序关联容器是基于数据结构哈希表的 ### 这旨在提高添加和删除元素的速度以及提高查找算法的效率 有4种无序关联容器: uno 阅读全文
posted @ 2020-08-23 12:36 孱陵 阅读(153) 评论(0) 推荐(0) 编辑
摘要: ### 关联容器是对容器概念的另一个改进。 ### 关联容器将值与键关联在一起,并使用键来查找值。 ### 对于容器X,表达式X::value_type通常指出了存储在容器中的值类型。 ### 对于关联容器,表达式X::key_type指出了键的类型 关联容器的优点: 支持快速访问 通常使用树实现 阅读全文
posted @ 2020-08-23 12:29 孱陵 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1.vector模板: 在vector头文件声明 ### 在尾部添加和删除元素的时间是固定的,但在头部 ### 或中间插入和删除元素的复杂度为线性时间 vector是可反转容器概念的模型。由此增加两个类方法: rbegin():返回一个指向反转序列的第一个元素的迭代器 rend():返回反转序列的超 阅读全文
posted @ 2020-08-23 09:39 孱陵 阅读(277) 评论(0) 推荐(0) 编辑