- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STL六大组件 STL六大组件 泛型编程技术 迭代器—概念和类型 概念: 是类似指针的对象,STL算法利用迭代器的对 外接口对存储在容器中的对象序列进行操作。 指针支持的操作符: operator++、operator--、operator*、operator-、 operator+n、operator-n、operator[] 迭代器类型: 迭代器适配器-插入迭带器 先看一个例子: int iarray[5] = { 1, 2, 3, 4, 5 }; listint ilist; copy(iarray, iarray + 5, ilist.begin()); //操作失败,ilist还没有分配内存 copy(iarray, iarray + 5, back_insert_iteratorlistint (ilist)); //使用后插迭带器 copy(iarray, iarray + 5, back_inserter(ilist)); //为方便使用,stl提供back_inserter函数封装了后插迭带器 用途:用于将值插入到容器中。 实现原理:模版类,模版参数是一个容器,只重载赋值(operator=)操作符,在赋值操作 中调用底层容器的插入操作(push_back、push_front或insert)。属于输出迭带器。 类型: 前插迭带器:front_insert_iteratorContainer(Container x), 或front_inserter(Container x) 后插迭带器:back_insert_iteratorContainer(Container x), 或back_inserter(Container x) 插入迭带器:insert_iteratorContainer(Container x, Container::iterator i),或 inserter(Container x, Container::iterator i) //一个后插迭带器的实现 templateclass Container class back_insert_iterator{ protected: Container * container; //底层容器 public: back_insert_iterator(Container x) : container(x){} back_insert_iteratorContainer operator = (const typename Container::value_type value) container-push_back(value); //关键,调用push_back return * this; } 迭代器适配器-数据流迭带器(stream iterators) 用途:将迭带器绑定到数据流对象身上,使其拥有输入或输出能力(将数据流对象视为容器)。绑定到istream对象,称为istream_iterator,拥有输入能力;绑定到ostream对象,称为ostream_iterator,拥有输出能力。 实现原理:模版类,对于istream_iterator,内部维护一个istream member,客户端对于迭带器所做的operator++操作,会调用istream member的输入操作(operator);对于ostream_iterator,内部维护一个ostream member,客户端对于迭带器所做的operator=操作,会调用ostream member的输出操作(operator )。 类型:istream_iterator ostream_iterator 容器-概览 序列式容器- list List-实例 序列式容器- deque 容器适配器:stack、queue string string-常用函数 重载多种操作符 +, +=, , =, , [], , 查找相关:find、rfind、find_first_of、find_first_not_of、find_last_of、find_last_not_of 注意:未找到时,返回的是string::npos insert、replace、erase 获得c风格字符串:c_str( )、data 注意: (1)c_str 直接返回一个以\0结尾的字符串 (2)data 直接以数组方式返回string的内容,其大小为size()的返回值,结尾并没有\0字符 关联式容器-
您可能关注的文档
最近下载
- T∕CACM 1066.2-2018 中医治未病标准化工作指南 第2部分:标准体系.docx VIP
- 技术服务措施及保障措施方案.docx VIP
- 新媒体环境下的微博营销【文献综述】.doc VIP
- 2021钻床工考试-初级钻床工考试(精选试题).doc VIP
- 化工企业双重预防机制.pdf VIP
- (铁总计统〔2017〕177号 )中国铁路总公司关于进一步加强铁路建设项目征地拆迁工作和费用管理的指导意见.pdf VIP
- 深圳新桥街道万丰社区大朗山片区城市更新项目.pdf
- 中小学劳动教育课程如何创新与实施.docx VIP
- 大航海时代OL陆战技巧学习指南.docx
- 集中式山地光伏电站方阵区直流电缆敷设技术要求.pdf VIP
文档评论(0)