当前位置: 首页 > news >正文

性能设计模式

class Singleton {
public:
static Singleton& getInstance() {static Singleton instance; // 局部静态变量return instance;
}
private:Singleton() {}Singleton(const Singleton&) = delete; // 禁止拷贝Singleton& operator=(const Singleton&) = delete; // 禁止赋值
};

容器类型

插入性能

删除性能

查找性能

随机访问性能

内存使用情况

底层实现

std::vector

末尾 O(1),其他 O(n)

末尾 O(1),其他 O(n)

O(n)

O(1)

紧凑(数组式存储)

动态数组

std::deque

前后 O(1)

前后 O(1)

O(n)

O(1)

较紧凑

分块数组

std::list

O(1)

O(1)

O(n)

O(n)

高(每个元素有指针)

双向链表

std::forward_list

O(1)

O(1)

O(n)

O(n)

较低

单向链表

std::map

O(log n)

O(log n)

O(log n)

O(log n)

较高(树结构)

红黑树

std::unordered_map

O(1) 均摊,最坏 O(n)

O(1) 均摊,最坏 O(n)

O(1) 均摊,最坏 O(n)

不支持

较高(哈希表开销)

哈希表

std::set

O(log n)

O(log n)

O(log n)

O(log n)

较高(树结构)

红黑树

std::unordered_set

O(1) 均摊,最坏 O(n)

O(1) 均摊,最坏 O(n)

O(1) 均摊,最坏 O(n)

不支持

较高(哈希表开销)

哈希表

std::stack

O(1)

O(1)

不支持

不支持

与底层容器相同

deque / vector

std::queue

O(1)

O(1)

不支持

不支持

与底层容器相同

deque

std::priority_queue

O(log n)

O(log n)

O(1)

不支持

与底层容器相同

堆结构

  • mapmap 中的元素是按 键值的升序 存储的。由于底层使用了红黑树结构,每次插入元素时会自动对元素进行排序。你可以在遍历时按键值的顺序访问元素。

  • unordered_mapunordered_map 中的元素 没有特定的顺序。哈希表不维护元素的顺序,元素的插入顺序和访问顺序没有特定规则,完全取决于哈希值的分布。

相关文章:

性能设计模式

class Singleton { public: static Singleton& getInstance() {static Singleton instance; // 局部静态变量return instance; } private:Singleton() {}Singleton(const Singleton&) delete; // 禁止拷贝Singleton& operator(const Singleton&) delete; // …...

Android 热点分享二维码功能简单介绍

Android 热点分享二维码 文章目录 Android 热点分享二维码一、前言二、热点二维码1、热点分享的字符串2、代码中热点字符串拼接和设置示例3、一个图片示例 三、其他1、Android 热点分享二维码小结2、Android11 设置默认热点名称和热点密码、密码长度 一、前言 比较新的Android…...

SIEM之王,能否克服创新者的窘境?

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…...

(JAVA)浅尝关于 “栈” 数据结构

1. 栈的概述: 1.1 生活中的栈 存储货物或供旅客住宿的地方,可引申为仓库、中转站。例如酒店,在古时候叫客栈,是供旅客休息的地方,旅客可以进客栈休息,休息完毕后就离开客栈 1.2计算机中的栈 将生活中的…...

【前端】ES13:ES13新特性

文章目录 1 类新增特性1.1 私有属性和方法1.2 静态成员的私有属性和方法1.3 静态代码块1.4 使用in来判断某个对象是否拥有某个私有属性 2 支持在最外层写await3 at函数来索引元素4 正则匹配的开始和结束索引5 findLast() 和 findLastIndex() 函数6 Error对象的Cause属性 1 类新…...

vuepress 浏览器加载缓存,总是显示旧页面,无法自动刷新数据的解决方法

vuepress 采用多页面形式,每个md文件在打包时,都会被转为一个html页面;而浏览器默认会缓存页面,导致更新的页面必须手动刷新才行 对于更新较为频繁的文档 全局可在config.js里设置 参考文档: https://vuepress.github.io/zh/ref…...

如何使用代理IP解决反爬虫问题

在网络爬虫的世界里,反爬虫机制就像是守卫城池的士兵,时刻准备着抵御外来的“入侵者”。为了突破这些守卫,代理IP就像是你的隐形斗篷,帮助你在网络世界中自由穿梭。今天,我们就来聊聊如何使用代理IP解决反爬虫问题。 …...

QT学习笔记之绘图

或许有人会等你到天黑,但是你不该在天黑后再找他(她)。 1.绘图事件 在ui文件中添加一个按钮,同时在资源文件中添加一个名字为1.jpg的图片。 widget.cpp #include "widget.h" #include "ui_widget.h" #incl…...

大数据新视界 --大数据大厂之数据清洗工具 OpenRefine 实战:清理与转换数据

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…...

基于QT的C++中小项目软件开发架构源码

描述 基于QT信号槽机制实现类之间的交互调用通信,适用于使用不同枚举作为消息交互的类型场景,支持附带任意参数,代码使用方式参考前一篇文章 特性 代码简洁,不超过100行仅需包含一个头文件Communicator.h,需要通信的…...

self-supervised, weakly supervised, and supervised respectively区别

Self-supervised learning(自监督学习)、weakly supervised learning(弱监督学习)和supervised learning(监督学习)是机器学习中的不同学习范式,它们的主要区别如下: 一、监督学习&…...

安卓好软-----手机屏幕自动点击工具 无需root权限

工具可以设置后自动点击屏幕。可以用于一些操作。例如自动刷视频等等哦 工具介绍 一款可以帮你实现自动操作的软件。软件中你可以根据实际需要设置点击位置,可以是屏幕上的特定位置,也可以是按钮或控件。功能非常强大,但是操作非常简单&…...

【Redis】主从复制(下)--主从复制原理和流程

文章目录 主从复制原理主从节点建立复制流程图数据同步 psyncpsync的语法格式 psync运行流程全量复制全量复制的流程全量复制的缺陷有磁盘复制 vs 无磁盘复制 部分复制部分复制的流程复制积压缓冲区 实时复制 主从复制原理 主从节点建立复制流程图 保存主节点的信息从节点(sla…...

Pencils Protocol上线 Vaults 产品,为 $DAPP 深入赋能

Pencils Protocol 是 Scroll 生态一站式综合收益平台,该平台以 DeFi 功能作为抓手,基于 Farming、Vaults、Auction 等功能不断向 LRT、LaunchPad、AI、FHE、RWA 等领域深入的拓展。 近期 Pencils Protocol 生态不断迎来重磅进展,一个是 $DAPP…...

uni-app+vue3+pina实现全局加载中效果,自定义全局变量和函数可供所有页面使用

首先自定义一个加载中组件 ccloading.vue <template><view class"request-loading-view" v-if"loadingShow"><view class"loading-view"><image class"loading-img" :src"loading" mode"aspectF…...

基于SSM+小程序的在线课堂微信管理系统(在线课堂1)(源码+sql脚本+视频导入教程+文档)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 &emsp1、管理员实现了首页、个人中心、用户管理、课程分类管理、课程信息管理、课程订阅管理、课程视频管理、公告栏管理、留言板管理、系统管理。 2、用户实现了首页、课程信息、公…...

Uniapp 微信小程序 最新 获取用户头像 和 昵称 方法 有效可用

文章目录 前言代码实现运行效果技术分析 前言 同事有个需求 授权获取用户头像 和 昵称 。之前做过线上小程序发版上线流程 就实现了下 最新的方法和 api 有些变化 记录下 代码实现 先直接上代码 <template><view class"container"><buttonclass&qu…...

儿童手抄报模板-200个(家有神兽必备)

在这个充满色彩与想象的世界里&#xff0c;每一位小朋友都是一位小小艺术家和梦想家。作为家长或老师&#xff0c;我们总是希望能为他们的学习生活增添一抹亮色&#xff0c;激发他们的创造力与探索欲。今天&#xff0c;就为大家带来一份超级实用的资源——儿童手抄报模板-200个…...

动态规划入门题目->使用最小费用爬楼梯

1.题目&#xff1a; 2.解析&#xff1a; 做题模式&#xff1a; 步骤一&#xff1a;找状态转移方程 步骤二&#xff1a;初始化 步三&#xff1a;填表 步骤四&#xff1a;返回-> dp[n] dp[i]表示到达 i 位置最小花费 逻辑&#xff1a;要爬到楼顶先找到 i 位置 &#xff0c; 要…...

中间添加一条可以拖拽的分界线,来动态调整两个模块的宽度

在 React 中操作 DOM 元素时&#xff0c;使用 document.querySelector 以及全局事件监听&#xff08;如 addEventListener&#xff09;并不推荐&#xff0c;因为这些方法无法与 React 的生命周期很好地协调&#xff0c;可能会导致内存泄漏或影响性能。 可以改为使用 useRef 和…...

App启动总览

特征 / 步骤 冷启动 (Cold Start) 温启动 (Warm Start) 热启动 (Hot Start) 速度 最慢 🐢 中等 🏃 最快 🚀 进程创建 ✅ 需要 ❌ 跳过 ❌ 跳过 Application.onCreate() ✅ 需要调用 ❌ 跳过 ❌ 跳过 Activity.onCreate() ✅ 需要调用 ✅ 需要调用 ❌ 跳过 Activity.onSta…...

嵌入式LED条形图库BarChart:轻量级数值可视化方案

1. BarChart 库概述BarChart 是一个面向嵌入式平台的轻量级可视化输出库&#xff0c;专为资源受限的微控制器设计&#xff0c;其核心目标是将数值型数据以直观的条形图&#xff08;Bar Chart&#xff09;形式呈现。该库不依赖图形 LCD 或 OLED 屏幕&#xff0c;而是充分利用两类…...

如何快速完成黑苹果安装?OpCore Simplify终极简化指南

如何快速完成黑苹果安装&#xff1f;OpCore Simplify终极简化指南 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 厌倦了繁琐的黑苹果配置过程&#x…...

mmdetection训练中断后如何精准恢复epoch?详解resume与配置文件调整

1. 理解训练中断恢复的核心逻辑 当你用mmdetection训练模型时&#xff0c;最崩溃的莫过于训练到第23个epoch突然断电。别慌&#xff0c;恢复训练的关键在于理解三个核心要素的联动关系&#xff1a; 检查点文件(.pth)&#xff1a;保存了模型权重、优化器状态和当前epoch数--resu…...

TIA Portal精智面板动画外观实战:从基础图形到变量控制

1. 精智面板动画外观入门指南 第一次接触TIA Portal的精智面板动画功能时&#xff0c;我被它强大的可视化能力惊艳到了。简单拖拽几个图形&#xff0c;关联PLC变量&#xff0c;就能实现酷炫的工业界面效果。下面我就用最直白的语言&#xff0c;带大家从零开始玩转这个功能。 首…...

【机器人导航】Ubuntu16.04下北斗星通接收机硬件连接与串口配置指南

1. 北斗星通接收机硬件连接指南 第一次接触北斗星通接收机时&#xff0c;我完全被它铝合金外壳的专业感震撼到了。这种工业级设备虽然看起来复杂&#xff0c;但只要掌握正确方法&#xff0c;连接起来其实比想象中简单得多。我们以NC502-D型接收机为例&#xff0c;这是机器人导航…...

UniApp应用变现实战:用uni-ad激励视频提升用户留存与收益的配置心得

UniApp应用变现实战&#xff1a;用uni-ad激励视频提升用户留存与收益的配置心得 在移动应用生态中&#xff0c;广告变现与用户体验的平衡一直是开发者面临的难题。激励视频作为一种用户主动参与的广告形式&#xff0c;不仅能为开发者带来收益&#xff0c;还能通过奖励机制提升用…...

百考通:AI全流程智能化赋能期刊论文写作,让学术创作更高效

在学术研究领域&#xff0c;期刊论文的撰写是成果输出的关键环节&#xff0c;却也让众多科研工作者与学生倍感压力&#xff1a;选题迷茫、逻辑梳理困难、格式规范复杂、内容提炼耗时&#xff0c;严重拖慢了学术成果的发表节奏。百考通&#xff08;https://www.baikaotongai.com…...

AIGlasses_for_navigation精彩案例分享:真实视障用户过马路辅助语音引导记录

AIGlasses_for_navigation精彩案例分享&#xff1a;真实视障用户过马路辅助语音引导记录 1. 引言&#xff1a;当AI成为视障者的“眼睛” 想象一下&#xff0c;你站在一个繁忙的路口&#xff0c;耳边是呼啸而过的车流声&#xff0c;眼前却是一片模糊或黑暗。过马路&#xff0c…...

突破常规认知的编辑器革命:TinyEditor轻量级代码编辑器深度解析

突破常规认知的编辑器革命&#xff1a;TinyEditor轻量级代码编辑器深度解析 【免费下载链接】TinyEditor A functional HTML/CSS/JS editor in less than 400 bytes 项目地址: https://gitcode.com/gh_mirrors/ti/TinyEditor 当开发者在移动设备上调试代码&#xff0c;或…...