摘要:
多数计算机语言的输入和输出是以语言本身为基础实现的。但C和C++都没有将输入和输出建立在语言中。 ### 多数实现人员把I/O建立在最初为UNIX环境开发的库函数的基础之上。ANSI C正式承认这个I/O软件包 ### 时,将其称为标准输入/输出包,并将其作为标准C 库不可或缺的组成部分。C++ 也 阅读全文
摘要:
在代码中使用initializer_list对象,需包含头文件initializer_list(C++11)。 该模型包含成员函数begin( ) 和 end( ) 以及 size( ),size( )返回元素数。 可对其使用初始化列表进行初始化或赋值。 可按值传递initializer_list对 阅读全文
摘要:
vector、valarray和array这三个类模板是由不同的小组开发的,用于不同的目的: vector模板类: 它是一个容器类和算法系统的一部分,支持面向容器的操作,如排序、插入、重新排列、搜索 将数据转移到其它容器中等。 valarray模板类: 它面向数值计算,不是STL的一部分, 如: 无 阅读全文
摘要:
C++还提供了一些更为专用的类库: complex类模板 声明于complex头文件 适用于复数 包含用于float、long、long double的具体化 提供了标准的复数运算以及能够处理复数的标准函数 random头文件(C++11)提供了许多随机数功能 valarray类模板: 由头文件va 阅读全文
摘要:
STL是一个库,其组成部分被设计成协同工作。STL组件是工具,但也是创建其它工具的基本部件。 ### map类有一个特征:可以使用数组表示法(将键用作索引)来访问存储的值 ### 如果键无效,则对应的值将为 0 使用 STL 时应尽可能减少要编写的代码。STL通用、灵活的设计将节省大量工作。 另外, 阅读全文
摘要:
有时可以选择使用STL方法或STL函数。通常方法是更好的选择。 ### 首先,它更适合特定的容器; ### 其次,作为成员函数,它可以使用模板类的内存管理工具,从而在需要时调整容器的长度。 例如: 删除链表元素可使用remove( _iterator x)方法,该方法自动删除相应值和调整链表长度。 阅读全文
摘要:
string类虽然不是STL的组成部分,但设计它时考虑到了STL。因此它包含: begin() end() rbegin() rend() …… next_permutation( begin_iterator, end_iterator)算法: ### 将区间内容转换为下一种排列方式。 ### 对 阅读全文
摘要:
对算法进行分类的方式之一是按结果放置的位置进行分类: 就地完成工作 创建拷贝 有些算法有两个版本: 就地版本 复制版本:规定名称以 _copy 结尾 ### 对于复制算法,统一的约定是: ### 返回一个迭代器,该迭代器指向复制的最后一个值后面的一个位置。 ### 另一个常见的变体是:有些函数根据应 阅读全文
摘要:
STL将算法库分成4组: 非修改式序列操作 ### 对区间中的每个元素进行操作,但不修改容器的内容。 修改式序列操作 ### 对区间中的每个元素进行操作,可以修改容器的内容。 排序和相关操作 这里包含多个排序函数(sort( ))和其它各种函数,包括集合操作 通用数字计算 包括这些函数: 将区间的内 阅读全文
摘要:
STL包含很多处理容器的非成员函数,它们的总体设计是相同的: 都使用迭代器来标识要处理的数据区间和结果的放置位置 有些函数接受一个函数对象参数,并使用其来处理数据 由上引出下面对于算法函数的讨论: 对于算法函数设计,有两个主要的通用部分: 使用模板来提供泛型 使用迭代器来提供访问容器中数据的通用表示 阅读全文