欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《STL泛型编程》PPT课件.ppt

    • 资源ID:5453849       资源大小:260.99KB        全文页数:29页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《STL泛型编程》PPT课件.ppt

    STL泛型编程,宁波大学大学生软件实训基地 陈叶芳,目录,概述Vector向量容器string基本字符系列容器set集合容器deque双端队列容器list双向链表容器stack堆栈容器queue队列容器,概述,C+STL(Stanard Template Library):C+标准模板库,又称C+泛型库。定义了常用的数据结构和算法。泛型程序设计:将程序尽可能写得通用。STL提供三种类型组件:容器标准类模板迭代器通用类型指针算法,概述,容器类的对象包含一组元素,这组元素又同是一种类的对象。数组基本顺序表都是容器类.一个整型数组和一个字符型数组,是数组容器类的两个对象,即两个容器,整型数组容器和字符数组容器.七种基本容器:向量(vector)、队列(deque)、列表(list)、串(string):顺序容器,一系列元素的有序集合集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap):关联容器,包含查找元素的键值。,概述,迭代器的作用:遍历容器。STL算法库:排序算法,不可变序算法,变序性算法,数值算法。,概述,/用向量容器装入10个数,用accumulate算法统计和#include#include/向量需要#include/算法需要using namespace std;int main()vector v;/定义向量vint i;for(i=0;i:iterator it=v.begin();for(;it!=v.end();it+)cout*it;coutendl;coutaccumulate(v.begin(),v.end(),0)endl;return 0;,Vector向量容器,vector向量容器:对元素随机访问;在尾部插入元素;可以替代数组。Vector:内存自动管理,在插入删除元素时动态调整所占空间。#includebegin():返回首元素位置的迭代器。end():返回最后一个元素的下一元素位置的迭代器。,Vector向量容器,创建vector对象常用的三种方式:(1)不指定元素个数 vector v;(2)指定容器大小(元素格式)vector v(10);元素下标09,初始值0(3)指定容器大小及初始值 vector v(10,8.1);元素下标09,初始值都是8.1,Vector向量容器,尾部元素扩张push_back(),#include#include/向量需要using namespace std;int main()vector v;/定义向量vv.push_back(2);v.push_back(8);v.push_back(10);/输出语句return 0;,Vector向量容器,下标访问vector元素,int i;vector v;/定义向量vv.push_back(2);/v0=2v.push_back(8);/v1=8v.push_back(10);/v2=10for(i=0;i3;i+)coutvi;,Vector向量容器,用迭代器访问vector元素,vector v;v.push_back(2);v.push_back(8);v.push_back(10);vector:iterator it;/定义迭代器变量for(it=v.begin();it!=v.end();it+)cout*it“”;/输出迭代器上元素值,Vector向量容器,元素的插入insert(),vector v(3);v0=2;v1=7;v2=9;v.insert(v.begin(),8);/插入到最前面v.insert(v.begin()+2,1);/在第2个元素前插入v.insert(v.end(),3);/在末尾插入vector:iterator it;/定义迭代器变量for(it=v.begin();it!=v.end();it+)cout*it;,Vector向量容器,元素的删除erase():删除迭代器所指的一个元素或一段区间中的所有元素clear():一次性删除vector中所有元素,Vector向量容器,元素的删除,int i;vector v(10);for(i=0;i:iterator it;for(it=v.begin();it!=v.end();it+)cout*it;/0 6 7 8 9,Vector向量容器,使用reverse反向排列算法(头文件algorithm):可将某段迭代器区间元素反向排列。,#include#include#includeusing namespace std;int main()int i;vector v(10);for(i=0;i:iterator it;for(it=v.begin();it!=v.end();it+)cout*it;return 0;,Vector向量容器,使用sort算法排序:默认升序,#include#include#includeusing namespace std;int main()int i;vector v;for(i=0;i10;i+)v.push_back(9-i);for(i=0;i10;i+)coutvi;coutendl;sort(v.begin(),v.end();for(i=0;i10;i+)coutvi;return 0;,Vector向量容器,计算向量大小size():返回元素个数empty():返回向量是否为空,int i;vector v(10);for(i=0;i10;i+)vi=i;coutv.size()endl;/元素个数10coutv.empty()endl;/0表示向量非空v.clear();coutv.empty()endl;/1表示向量空,string基本字符系列容器,vector向量也可以处理字符串,但string更方便。string:字符串类,提供添加、删除、替换、查找和比较等。(头文件#include)创建string对象。,#include#includeusing namespace std;int main()string s;couts.length()endl;return 0;,string基本字符系列容器,给string对象赋值(1)直接给字符串对象赋值string s;s=“hello C+STL!”coutsendl;(2)把字符指针赋给一个字符串对象string s;char ss100;scanf(“%s”,ss);/scanf不支持string对象s=ss;,string基本字符系列容器,从string对象尾部添加一个字符:用符号+.string s;s=s+a;s=s+b;s=s+c:coutsendl;,string基本字符系列容器,从string对象尾部追加字符串:用符号+或append().string s;s=s+”abc”;/abcs=s+”123”;/abc123,string s;s.append(“abc”);s.append(“123”);,string基本字符系列容器,给string对象插入字符:insert().string s;s=”123456”;string:iterator it;it=s.begin();s.insert(it+1,p);/1p23456,string基本字符系列容器,访问string对象的元素:下标法,string s;s=“abc123456”;couts0endl;,string基本字符系列容器,替换string对象的字符:replace(),string s;s=“abc123456”;s.replace(3,3,”good”);/从第3个开始,连续的3个字符替换成”good”coutsendl;/abcgood456,string基本字符系列容器,搜索string对象的元素或子串:find(),找到则返回下标,否则返回4294967295,string s;s=cat dog cat;couts.find(a)endl;/查找字符acouts.find(dog)endl;/查找子串couts.find(dogc)endl;,stack堆栈容器,#include入栈:push()出栈:pop()栈顶元素:top()判断栈空:empty()元素个数:size(),stack堆栈容器,#include#include using namespace std;int main()stack s;s.push(1);s.push(2);s.push(3);s.push(9);couts.top()endl;/读栈顶元素couts.size()endl;/返回元素个数couts.empty()endl;/判断是否空while(s.empty()!=true)/栈非空couts.top();/读栈顶元素s.pop();/出栈,删除栈顶元素return 0;,queue队列容器,#include入队:push()出队:pop()读取队首元素:front()读取队尾元素:back()empty(),size(),queue队列容器,#include#include using namespace std;int main()queue q;q.push(1);q.push(2);q.push(3);q.push(9);coutq.front()endl;/读队首元素coutq.back()endl;/读队尾元素while(q.empty()!=true)/栈非空coutq.front();q.pop();/队首元素出队return 0;,

    注意事项

    本文(《STL泛型编程》PPT课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开