【c++】标准库

【c++】标准库

一.  标准库概述

二.迭代器

三.算法

    3.1.数据编辑算法

    3.2.查找算法

    3.3.比较算法

    3.4.排序相关算法

    3.5.计算相关算法

四.函数对象

五.适配器

六.字符串库

 参考:《c++从入门到精通》人民邮电出版社



一.  标准库概述

        C++标准库就好像设计图象时的图库一样,为c++程序员提供了可扩展的基础性框架,为程序设计带来了便利。本章介绍标准库的组成,STL中的迭代器、算法、函数对象、适配器以及字符串库等。

1.认识标准库

    C++标准分为两部分:c++语言本身和c++标准库。

    C++模板是对c++语言的一种扩展,模板是根据类型参数来产生函数和类的机制,也称模板为“参数化的类型”。使用模板,可以设计一个对多种数据类型进行操作的类,而不需要为每种类型建立一个单独的类。

    标准库中的一切几乎都是模板。

2.标准库的组成

    C++中标准库中的主要组件如图所示:

                

    (1) 标准模板库STL:是基于模板的,是c++标准库中的重要组成部分。STL包括5大组件:容器、算法、迭代器、函数对象、适配器。

    STL是基于数据和操作分离的,容器处理数据,算法数据操作,而迭代器则将它们结合起来。STL包含了很多在计算机科学领域里常用的基本数据结构和基本算法。

    (2) C标准函数库:基本保持了与原C语言程序库的良好兼容。

    (3) 语言支持:包含一些标准类型的定义以及其他特性的定义。

    (4)诊断:用于程序诊断和报错,包含异常处理、断言、错误代码 三部分。

    (5)通用工具:例如,动态内存管理工具,日期、时间处理工具。

    (6)字符串:用来代表和处理文本。文本是一个string对象,可被看作是一个字符序列或者是容器。

    (7)输入、输出:对原有标准库中的iostream进行模板化的部分,提供对c++程序输入输出的基本支持。

    (8)数值:数字处理

    (9)国际化:采用locale和facet为程序提供国际化支持,包括对各种字符集的支持,日期和时间的表示,数值和货币的处理,等等。

二.迭代器

    每个容器都有自己的迭代器,可以把迭代器看作一个容器所使用的特殊指针,可以存取容器内存储的数据。

迭代器的功能表:

使用迭代器可对容器中的数据进行操作。下表列出了主要的操作,其中iter和iter1表示迭代器。


迭代器核心代码:

list<int>::iterator list1_iterator ;//定义列表的迭代器,相当于指针  
for(list1_iterator=list1.begin(); list1_iterator !=list1.end(); list1_iterator++ )  
    {  
        if(*list1_iterator ==100 )  cnt++;  

    }  

. 算法

    算法是STL的一个重要组成部分,它提供了数据处理函数,可用于操作各种容器。STL的算法被定义在<algorithm>头文件中。

    STL中使用迭代器作为算法与容器间的媒介,算法要求的迭代器一定要与容器的迭代器相匹配,如sort算法使用随机迭代器,而list容器的迭代器仅为向前迭代器,所以sort算法无法在list容器上使用。

1.数据编辑算法

    数据编辑算法用来对容器内的数据进行编辑操作,如数据的填充、复制、合并、删除和替换等。

函数

功能

格式

说明

 

fill

 

用给定值初始化一个范围

Template<class ForwardIterator, class T>

void fill( ForwardIterator first , ForwardIterator last,

const T &value);

用value值填充容器[first,last]范围

copy

用于容器之间数据的复制

Template<class InputIterator,class OutputIterator >

OutputIterator copy(InputIterator first,  InputIterator  last,

OutputIterator  result);

 

返回值:是迭代器类型,它指向新复制容器的末尾

复制容器【first,last】范围内的元素到另一个容器的以result为起始的指定位置处。

 

me

r

ge

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值