首页 > 其他分享 >38deque, list及其API

38deque, list及其API

时间:2024-03-04 21:46:14浏览次数:23  
标签:38deque insert mylist 删除 deq 元素 list API 20

deque, list及其API

  • deque: 双端队列容器。底层数据结构:动态开辟的二维数组,一维数组是指针数组,长度从 2 开始,以 2 倍的方式进行扩容,每次扩容后,原来第二维的数组,从新的第一维数组的下标 oldsize/2 开始存放,上下都预留相同的空行,方便支持 deque 的首尾元素添加。

deque

deque<int> deq;

// 增加
deq.push_back(20); // 从末尾添加  O(1)
deq.push_front(20); // 从首部添加元素  O(1)
deq.insert(it, 20); // it 指向的位置添加元素  O(n)

// 删除
deq.pop_back(); // 从末尾删除元素  O(1)
deq.pop_front(); // 从首部删除元素  O(1)
deq.erase(it); // 从 it 指向的位置删除元素  O(n)

//查询搜索
// iterator(连续的 insert 和 erase 一定要考虑迭代器失效的问题)
  • list: 链表容器。
list<int> mylist;

// 增加
mylist.push_back(20); // 从末尾添加  O(1)
mylist.push_front(20); // 从首部添加元素  O(1)
// 链表中进行 insert 的时候,先要进行一个 query 查询操作,对于链表来说,查询操作效率就比较慢了
mylist.insert(it, 20); // it 指向的位置添加元素  O(1)

// 删除
mylist.pop_back(); // 从末尾删除元素  O(1)
mylist.pop_front(); // 从首部删除元素  O(1)
mylist.erase(it); // 从 it 指向的位置删除元素  O(1)

//查询搜索
// iterator(连续的 insert 和 erase 一定要考虑迭代器失效的问题)

标签:38deque,insert,mylist,删除,deq,元素,list,API,20
From: https://www.cnblogs.com/sio2zyh/p/18052776

相关文章

  • 39vector, deque, list之间的对比
    vector,deque,list之间的对比vector的特点:动态数组内存是完全连续的扩容:2倍形式扩容,扩容时要开辟新的内存空间,并将数据拷贝list的特点:双向循环链表内存是不连续的没有扩容需求deque的特点:参考动态开辟的二维数组空间内存分段连续第二维是固定长度的数组......
  • ChatGPT4.0_API
    importopenaiimportjsonimportos#openai.api_key=get_api_key()openai.api_key="yourkey"#q="用python实现:提示手动输入3个不同的3位数区间,输入结束后计算这3个区间的交集,并输出结果区间"#q="WhatisthvbScript?"#q="翻译成日语:市场非常有潜力"#q="北京、......
  • 微信小程序开发:接入阿里云人像动漫化api接口
    前面我已经把腾讯云的人像转动漫化接口接到了我的小程序里,但是和阿里云的对比后,发现阿里云的效果会更好一些,且支持更多特效,如下: 我比较喜欢这个3D特效风格,动画3D也可以,大家拭目以待。话说上次接了腾讯云的人像转动漫接口,小程序提审后居然没过,说什么我的小程序设计AI合成: ......
  • 七款顶级API测试工具
    在现代软件开发中,API接口已成为不可或缺的核心组件。鉴于API缺乏直观的图形用户界面(GUI),使得直接对接口进行测试变得困难,对于前后端开发者而言,选择一套高效且实用的工具来测试API接口,从而验证开发的程序是否满足预期,显得尤为重要。在处理大量API时,手动测试不仅效率低下,而且容易出错......
  • 【Spring】Spring的事件监听ApplicationListener 、ApplicationEvent
     Spring中的事件监听机制,事件驱动开发可以用在以下这些场景:1.业务代码入口在下一级模块module,sender消息发送者在上一级模块module,不想循环依赖,就这样用2.解耦合的事件驱动模式,观察者模式等3.待补充实例代码:1.业务代码testAAA,执行同步业务privatevoidtestAAA(List<Chann......
  • Java List常用方法Stream()简要总结&生成的List去重
    Java中,ArrayList应该是比较常用的一个对象了;那么它的stream()方法大家了解过吗?如果可以熟练使用stream()方法,就可以方便地获取list中元素的某个特定字段、对list中的元素进行筛选、或者把list转成map。参考:https://blog.csdn.net/BHSZZY/article/details/122860048如何获取不重......
  • 气象信息API
    用WPF技术搭建简单的气象免费小控件,注册取得key 前端代码:<Grid><Grid.ColumnDefinitions><ColumnDefinitionWidth="611*"/><ColumnDefinitionWidth="189*"/></Grid.ColumnDefinitions><......
  • 有一个子组件DataList,然后在父组件中引入,并在父组件引入中的DataList标签上设置style
    有一个子组件DataList,然后在父组件中引入,并在父组件引入中的DataList标签上设置style样式,能生效吗?在React中,父组件可以通过props将样式传递给子组件,并在子组件内部应用这些样式。但直接在父组件引用子组件的地方设置style属性通常不会生效,因为React的JSX语法并不支持这种写法。......
  • 深度复制:C# 中 List 与 List 多层嵌套不改变原值的实现方法
     概述:以上内容详细介绍了在C#中实现不改变原List值的多层嵌套复制方法,包括使用AutoMapper、Json.NET、以及对象序列化的步骤和示例。这些方法提供了灵活而高效的方式,可以根据项目需求选择最适合的深度复制方式。1.使用AutoMapper进行多层嵌套复制AutoMapper是一个......
  • ConcurrentSkipListMap
    为了引出ConcurrentSkipListMap,先带着大家简单理解一下跳表。对于一个单链表,即使链表是有序的,如果我们想要在其中查找某个数据,也只能从头到尾遍历链表,这样效率自然就会很低,跳表就不一样了。跳表是一种可以用来快速查找的数据结构,有点类似于平衡树。它们都可以对元素进行快速的查......