- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STL1学习
第4章 标准模板库 命名空间(Namespace) 一个命名空间将不同的标识符集合在一个命名作用域(named scope)内 -为了解决命名冲突 -例如,声明一个命名空间NS: namespace NS{ class File; void Fun(); } 则引用标识符的方式如下: NS::File obj; NS::Fun(); 没有声明命名空间的标识符都处于无名的命名空间中 命名空间(Namespace) 可以用using来指定命名空间 -例如,经过以下声明: using NS::File 在当前作用域中就可以直接引用File -using namespace std; 命名空间std中所有标识符都可直接引用 在新的C++标准程序库中,所有标识符都声明在命名空间std中,头文件都不使用扩展名。 容器 容器类是容纳、包含一组元素或元素集合的对象 顺序容器和关联容器 7种基本容器 -向量(vector)、双端队列(deque)、列表(list)、集合(set)、多重集合(multiset)、映射(map)和多重映射(multimap) 容器的接口 通用容器运算符 -==,!=,,=,,=,= 方法(函数) -迭代方法 begin(),end(),rbegin(),rend() -访问方法 size(),max_size(),swap(),empty() 迭代器 迭代器是面向对象版本的指针,它们提供了访问容器、序列中每个元素的方法。 算法 C++标准模板库中包括70多个算法: -其中包括查找算法、排序算法、消除算法、记数算法、比较算法、变换算法、置换算法和容器管理等。 这些算法的一个最重要的特性就是它们的统一性,并且可以广泛用于不同的对象和内置的数据类型。 矢量容器 矢量属于顺序容器,用于容纳不定长线性序列(即线性群体),提供对序列的快速随机访问(也称直接访问)。 向量是动态结构,它的大小不固定,可以在程序运行时增加或减少。 准备使用矢量 #includevector 声明矢量 在main()函数中做的第一件事情就是声明一个新的矢量。 vectorstring inventory; 向量的实例化! 使用push_back()成员函数 push_back()成员函数向矢量的最后添加了一个新元素。 inventory.push_back(sword); inventory.push_back(armor); inventory.push_back(shield); 结果,invertory[0]等于“sword”,inventory[1]等于“armor”, inventory[2]等于“shield”。 使用size()成员函数 cout You have inventory.size() items.\n; 我们通过使用inventory.size() 调用size()成员函数来获得inventory的大小。size()成员函数只返回一个矢量的大小。 索引矢量 cout \nYour items:\n; for (int i = 0; i inventory.size(); ++i) cout inventory[i] endl; 与数组一样,可以使用下标操作符索引矢量。唯一区别的是使用inventory.size()来指定循环应该在何时结束。 调用元素的成员函数 cout inventory[0].size() letters in it.\n; 正如数组一样,可以通过下列方法访问一个矢量元素的成员函数:写下元素,后面加上成员选择操作符,然后加上成员变量的名称。 使用pop_back()成员函数 inventory.pop_back(); pop_back()成员函数删除矢量的最后一个元素并将矢量大小减小1. 练习 在函数push中,应用矢量容器的push_back()成员函数生成一个包含8个字符串的矢量,然后在函数disp中通过循环语句输出矢量容器中的字符串,要求使用成员函数size()作为控制循环终止条件。 #includeiostream #includestring #includevector using namespace std; typedef vectorstring str; void push(str v) {v.push_back(JJJJJ); v.push_back(IIIII); v.push_back(SSSSS); v.push_back(EEEEE); v.push_bac
您可能关注的文档
- 中国海上领土能力.doc
- 中国近现代史纲要课后答案完整版.doc
- 中国设计师网.doc
- 中国历代人口变迁.doc
- 中国现代文学馆的介绍.doc
- 课程塑性成形与CAD-9有限元.ppt
- ——我的中国梦.doc
- 职业英语2readingA翻译.doc
- 世界近现代史大事纪年(含中国部分).doc
- ××无公害优质稻产销协会工作总结.doc
- 书面表达之建议信(讲义)-中考英语一轮复习(含答案).pdf
- 中考历史复习小众题型类:填空题、改错题、判断题(70题).pdf
- 2024年吉林省县乡教师选调考试《教育学》真题汇编带解析必背【基础题】.pdf
- 2025年中考语文备考之《朝花夕拾》名著导读及考题.pdf
- 小说标题的含义和作用(模拟突破)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 阅读理解之应用文(练习)-中考英语一轮复习(含答案).pdf
- 小说情节作用(模拟突破)-2025年中考语文考点突破之小说阅读(原卷版).pdf
- 小说段落作用(模拟突破)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 小说段落作用(试题专练)-2025年中考语文考点突破之小说阅读(解析版).pdf
- 2025年上海市16区初三语文一模试题汇编之现代文阅读二(记叙文)学生版.pdf
文档评论(0)