C++ primer plus 第16章string 类和标准模板库, 算法

C++ primer plus 第16章string 类和标准模板库, 算法

C++ primer plus 第16章string 类和标准模板库, 算法


16.6 算法

STL包含很多处理容器的非成员函数,前面已经介绍过其中的一些:sort()、copy()、find()、random shufe()、set union()、set intersection()、set difference()和transform()。可能已经注意到,它们的总体设计是相同的,都使用迭代器来标识要处理的数据区间和结果的放置位置。有些函数还接受一个函数对象参数,并使用它来处理数据。
对于算法函数设计,有两个主要的通用部分。首先,它们都使用模板来提供泛型;其次,它们都使用迭代器来提供访问容器中数据的通用表示。因此,copy()函数可用于将double 值存储在数组中的容器、将string 值存储在链表中的容器,也可用于将用户定义的对象存储在树结构中(如set所使用的)的容器。因为指针是一种特殊的迭代器,因此诸如copy()等STL函数可用于常规数组。
统一的容器设计使得不同类型的容器之间具有明显关系。例如,可以使用copy()将常规数组中的值复制到 vector 对象中,将 vector 对象中的值复制到 list 对象中,将 list 对象中的值复制到 set 对象中。可以用来比较不同类型的容器,如 deque 和 vector。之所以能够这样做,是因为容器重载的运算符使用迭代器来比较内容,因此如果 deque 对象和 vector 对象的内容相同,并且排列顺序也相同,则它们是相等的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值