- 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提供了vector、list和deque三个序列式容器。 关联式容器 元素位置取决于特定的排序准则和元素值,和插入次序无关。STL提供了四个关联式容器:set、multiset、map和multimap。 9.3.3 STL容器 2. vector Vector将其元素置于一个动态数组中加以管理:它允许随机存取,也就是说你可以利用索引直接存取任何一个元素。 在数组尾部增加元素或移除元素均非常快速,但是在中部或头部安插元素就比较费事。 (见示例) 9.3.3 STL容器 3. deque deque: double-ended queue, 双端队列。它也是一个动态数组,但是可以向两端发展,因此无论先头部还是尾部安插元素都是非常迅速。但如果在中间插入数据比较费事,因为要移动其他元素。 (见示例) 9.3.3 STL容器 4. list list, 双向链表,每个元素都有其前趋元素和后继元素。List不提供随机存取,但是其在任何位置插入或删除元素速度快,效率高。 (见示例) 9.3.3 STL容器 5. set set的内部元素依据其值自动排序,每个元素值只能出现一次,不允许重复。 6. Multiset 和set相同,只不过它允许重复元素。 7.Map map的元素都是“实值/键值”所形成的一个对组,每个元素有一个键,是排序的基础。 8. Multimap 和map相同,只是允许重复键值。 9.3.3 STL容器 1. STL容器的共同能力 1 所有容器提供的都是“Value语意”而非“reference语意”。也就是说容器进行元素安插操作时,内部实施的是拷贝操作,置于容器内。因此STL容器的每一个元素都必须能够被拷贝。------拷贝构造函数。 2 每个容器都有迭代器,利用迭代器就可以遍历容器里的每个元素。 9.3.4 容器的共同能力和操作 3 一般而言,各项操作并非绝对安全。调用者必须确保传给操作函数的参数符合需求。违反这些需求(例如使用非法索引)会导致未定义的行为。 9.3.4 容器的共同能力和操作 2. STL容器的共同操作 初始化 与大小相关的函数 比较 赋值 9.3.4 容器的共同能力和操作 提供容器默认初始化的构造函数。通常每个容器都有几个不同的构造函数,提供容器不同的初始化方法 将容器初始化为现有同类容器副本的构造函数 撤消容器时,进行内存处理 判容器是否为空,空返回true,不空返回false 返回容器中最多允许的元素量 返回容器当前元素量 默认构造函数 拷贝构造函数 析构函数 empty() max_size() size() 说明 标准库容器共有的函数 将一个容器赋值拷贝给另一个同类容器 交换两个容器的元素 如果前面的容器小于后面的容器,则返回true,否则返回false,不适用于priority_queue 如果前面的容器小于等于后面的容器,则返回true,否则返回false,不适用于priority_queue 如果前面的容器大于后面的容器,则返回true,否则返回false,不适用于priority_queue 如果前面的容器大于等于后面的容器,则返回true,否则返回false,不适用于priority_queue 如果前面的容器等于后面的容器,则返回true,否则返回false,不适用于priority_queue 如果前面的容器不等于后面的容器,则返回true,否则返回false,不适用于priority_queue operator= swap() operator operator= operator operator= operator== operator!= 说明 标准库容器共有的函数 获得指向被控序列开始处的迭代子,引用容器第一个元素 获得指向被控序列末端的迭代子,引用容器最后一个元素的后继位置 获得指向被控序列末端的反转型迭代子,引用容器最后一个元素。实际上这是该容器前后反转之后的begin() 获得指向被控序列开始处的反转型迭代子,引用容器第一个元素的前导位置。实际上这是该容器前后反转之后的end() 从容器中清除一个或几个元素 从容器中清除所有元素 begin() end() rbegin() rend() erase() clear() 说明 只在第一类容器中的
您可能关注的文档
最近下载
- 牙合架、面弓 培训专用.ppt VIP
- 谐音背单词联想记忆七天背完高中单词打印版.docx VIP
- 八年级语文上册新教材解读课件(统编版2024).pptx
- 建设工程监理质量管理体系技术和档案管理制度汇编样本.doc
- GB 30251-2024 炼化行业单位产品能源消耗限额.pdf VIP
- 香精香料基本知识培训课件.pptx VIP
- 《中华优秀传统文化》教案 第16课 商贸文化.docx VIP
- Unit 5(第1课时 Section A 1a-1d)(教学设计)七年级英语上册(人教版2024).pdf VIP
- 人教版中考英语单词巧记妙背三(单词句子图片结合记忆)课件.pptx VIP
- 第6课 从小爱科学 第1课时(教学设计)2025统编版道德与法治三年级上册.pdf
文档评论(0)