C++容器(vector、deque、list、map)

这篇具有很好参考价值的文章主要介绍了C++容器(vector、deque、list、map)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(1) vector:将元素置于一个动态数组中,可以随机存储元素(也就是用索引直接存取)。

数组尾部添加或删除元素非常迅速。但在中部或头部就比较费时。

*代码演示:*

取:
C++容器(vector、deque、list、map)
at在下标越界时会抛出异常,我们能捕获异常进行处理;而[]下标越界会让程序直接终止;

C++容器(vector、deque、list、map)
构造函数:

cbegin, cend, crbegin, crend返回的是常量迭代器,不能通过迭代器修改vector元素的值。

C++容器(vector、deque、list、map)

C++容器(vector、deque、list、map)

C++容器(vector、deque、list、map)

C++容器(vector、deque、list、map)

插入(insert):值得注意的是,insert函数返回值是一个迭代器,指向新添加的第一个元素:
C++容器(vector、deque、list、map)

删除(erase):
C++容器(vector、deque、list、map)

删除一段内容时,前闭后开
C++容器(vector、deque、list、map)
front函数,返回第一个元素的引用
C++容器(vector、deque、list、map)
crbegin(),crend() 倒着输出
C++容器(vector、deque、list、map)
C++容器(vector、deque、list、map)
C++容器(vector、deque、list、map)
C++容器(vector、deque、list、map)
C++容器(vector、deque、list、map)
C++容器(vector、deque、list、map)
C++容器(vector、deque、list、map)

(2) deque:“double end queue”的缩写,也就是双端队列。

*deque的实现相比于vector有些复杂,但本质仍然是优化过的动态数组,只不过相比于单纯的动态数组,在前面添加或删除元素非常快了。*

*可以随机存储元素。*头部和尾部添加或删除元素都非常快(略慢与vector)。但在 中间插入元素比较费时(和vector差不多)。

*代码演示:*

可以在前面添加和删除、可以随机存取元素([]、at):
C++容器(vector、deque、list、map)

(3) list:本质就是链表,所以自然具有了链表的属性。

*不能随机存取元素(也就是list无法用索引存取元素)*。在任何位置插入和删除元素都比较迅速。(在任何位置插入删除元素的时间相同,在元素头部操作慢于deque,在元素尾部操作慢于deque和vector)
C++容器(vector、deque、list、map)

(4) string:

C++容器(vector、deque、list、map)
C++容器(vector、deque、list、map)

(5) map/multimap:使用“红黑树”实现,是一种高度平衡的二叉树。

内部元素是成对的“key/value”,也就是“键值/实值”,内部元素依据其键值自动排序,map内部相同的键值只能出现一次,multimap则可以出现多次。

*代码演示:*
C++容器(vector、deque、list、map)文章来源地址https://www.toymoban.com/news/detail-434415.html

到了这里,关于C++容器(vector、deque、list、map)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Gabriel】C++中vector容器中元素输出(遍历)的5种方式

    大家好!我是Gabriel!我们在利用vector解算法题目时,经常需要遍历输出,对此,我有以下5种方法:  使用基于范围的for循环,从vector容器中逐个访问元素并输出它们:   使用迭代器遍历整个vector容器,并输出每个元素的值   使用标准库算法 std::for_each() 来遍历整个vector容器

    2024年02月07日
    浏览(73)
  • C++高级编程——STL:list容器、set容器和map容器

    本专栏记录C++学习过程包括C++基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下, 不定时更新,欢迎关注 。 当前章节处于: ---------第1阶段-C++基础入门 ---------第2阶段实战-通讯录管理系统, ---------第3阶段-C++核心编程, -----

    2024年01月25日
    浏览(46)
  • 【C++】反向迭代器的模拟实现通用(可运用于vector,string,list等模拟容器)

    🌏博客主页: 主页 🔖系列专栏: C++ ❤️感谢大家点赞👍收藏⭐评论✍️ 😍期待与大家一起进步! 我们要写出一个通用的反向迭代器模拟而且在保证代码简介不繁琐的的情况下,一定程度上使用我们自己模拟的已经封装好的iterator迭代器可以简化许多步骤,首先我们要知

    2024年02月14日
    浏览(55)
  • 探索C++中的动态数组:实现自己的Vector容器

    🎉个人名片 : 🐼作者简介:一名乐于分享在学习道路上收获的大二在校生 🙈个人主页🎉:GOTXX 🐼个人WeChat:ILXOXVJE 🐼本文由GOTXX原创,首发CSDN🎉🎉🎉 🐵系列专栏:零基础学习C语言----- 数据结构的学习之路----C++的学习之路 🐓每日一句:如果没有特别幸运,那就请特

    2024年03月16日
    浏览(47)
  • 创建了一个名为nums_list的vector容器,其中存储了一系列的pair<int, int>

    在上述代码中,我们首先创建了一个整数数组 nums ,其中包含了一些整数。然后,我们创建了一个空的 nums_list 容器。接下来,我们使用 for 循环遍历整数数组 nums ,并将每个数组元素和其对应的索引作为一个 pair 对象加入到 nums_list 容器中。最后,我们遍历 nums_list 容器,并

    2024年02月07日
    浏览(44)
  • C++ vector模板和deque的简单应用

    目录 🤔vector模板和deque的简单介绍: 🤔vector和deque的主要不同之处: 🤔今天我们用vector模板和deque模板实现以下简单的功能: 代码实现: 🤔讲解: vector 和 deque 都是C++ STL(标准模板库)中的容器模板,用于存储和管理数据。它们都提供了可动态调整大小的数组,允许在任

    2024年02月07日
    浏览(48)
  • 【数据结构与算法】C++的STL模板(迭代器iterator、容器vector、队列queue、集合set、映射map)以及算法例题

    更多算法例题链接: 【数据结构与算法】递推法和递归法解题(递归递推算法典型例题) 什么是迭代器(iterator) 迭代器(iterator)的定义: 迭代器是一种检查容器内元素并遍历元素的数据类型。 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围。 容器

    2024年04月14日
    浏览(50)
  • 【Java 集合框架API接口】Collection,List,Set,Map,Queue,Deque

    博主: _LJaXi Or 東方幻想郷 专栏: Java | 从跨行业到跨平台 开发工具: IntelliJ IDEA 2021.1.3 Java集合API提供了一组功能强大的数据结构和算法, 具有以下作用( 简述 ) 存储和组织数据 提供高效的数据访问和操作 实现算法和数据处理 提供线程安全性 支持泛型编程 java.util.Collection

    2024年02月12日
    浏览(48)
  • C++ 学习之Deque容器

    Deque(Double-Ended Queue,双端队列)是C++标准库中的一种容器,允许在两端进行高效地插入和删除操作。Deque与Vector类似,但相比于Vector,Deque在两端插入和删除元素的效率更高。 Deque具有以下特点和概念: 双端操作:Deque支持在头部和尾部进行插入和删除等操作,因此可以被视

    2024年02月19日
    浏览(41)
  • C++高级编程——STL:deque容器、stack容器和queue容器

    本专栏记录C++学习过程包括C++基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下, 不定时更新,欢迎关注 。 当前章节处于: ---------第1阶段-C++基础入门 ---------第2阶段实战-通讯录管理系统, ---------第3阶段-C++核心编程, -----

    2024年01月24日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包