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

Stack--Queue 栈和队列

一、Stack--栈

1.1 什么是栈?

堆栈是一种容器适配器,专门设计用于在 LIFO 上下文(后进先出)中运行,其中元素仅从容器的一端插入和提取。 

 第一个模版参数T:元素的类型;第二个模版参数Container:底层容器:分配器的类型。

1.2 栈内部成员函数

stack():创建空的栈

empty():检测栈是否为空

 

如果栈为空,返回true,否则返回false。

int main()
{int sum = 0;stack<int> mystack;for (int i = 1; i <= 10; i++){mystack.push(i);}while (!mystack.empty()){sum += mystack.top();mystack.pop();}cout << sum << endl;return 0;
}

size():返回stack中的元素个数

stack<int> mystack;
for (int i = 1; i <= 10; i++)
{mystack.push(i);
}
cout << mystack.size() << endl;

top():返回栈顶元素的引用

stack<int> mystack;
for (int i = 1; i <= 10; i++)
{mystack.push(i);
}
cout << mystack.top() << endl;

 push():将元素val压入stack中

stack<int> mystack;
for (int i = 1; i <= 10; i++)
{mystack.push(i);
}
while (!mystack.empty())
{cout << mystack.top() << " ";mystack.pop();
}

 stack是一个先进后出或后进先出的模式容器,相当于倒序输出数据。

pop():将stack尾部的元素弹出

for (int i = 1; i <= 10; i++)
{mystack.push(i);
}
while (!mystack.empty())
{cout << mystack.top() << " ";mystack.pop();
}

1.3 栈中题的解析

逆波兰表达式求值:

泥波兰表达式又称后缀表达式:

如:我们平时写a+b,这是中缀表达式,写成后缀表达式就是:ab+

(a+b)*c-(a+b)/e的后缀表达式为:

(a+b)*c-(a+b)/e

→((a+b)*c)((a+b)/e)-

→((a+b)c*)((a+b)e/)-

→(ab+c*)(ab+e/)-

→ab+c*ab+e/-

class Solution 
{
public:int evalRPN(vector<string>& tokens) {stack<int> s;for (size_t i = 0; i < tokens.size(); i++){string& str = tokens[i];// str为数字if (!("+" == str || "-" == str || "*" == str || "/" == str)){s.push(atoi(str.c_str()));}else{// str为操作符int right = s.top();s.pop();int left = s.top();s.pop();switch (str[0]){case '+':s.push(left + right);break;case '-':s.push(left - right);break;case '*':s.push(left * right);break;case '/':// 题目说明了不存在除数为0的情况s.push(left / right);break;}}}return s.top();}
};

二、Queue -- 队列

2.1 什么是队列?

1、队列是一种容器适配器,专门设计用于在 FIFO 上下文(先进先出)中运行,其中 elements入到容器的一端并从另一端提取。

2、队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供 一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。

 

2.2 队列的使用 

队列的使用函数接口与栈的类似:

queue():构造空的队列

queue<int> q1;

empty(): 检测队列是否为空,是返回true,否则返回false 

queue<int> myqueue1;
for (int i = 1; i <= 10; i++)
{myqueue1.push(i);
}
cout << myqueue1.empty() << endl;
queue<int> myqueue2;
cout << myqueue2.empty() << endl;

size(): 返回队列中有效元素的个数

queue<int> myqueue1;
for (int i = 1; i <= 10; i++)
{myqueue1.push(i);
}
cout << myqueue1.size() << endl;

front():返回队头元素的引用  

queue<int> myqueue1;
for (int i = 1; i <= 10; i++)
{myqueue1.push(i);
}
cout << myqueue1.front() << endl;

back(): 返回队尾元素的引用 

queue<int> myqueue1;
for (int i = 1; i <= 10; i++)
{myqueue1.push(i);
}
cout << myqueue1.back() << endl;

push(): 在队尾将元素val入队列

for (int i = 1; i <= 10; i++)
{myqueue1.push(i);
}

 pop():将队头元素出队列

queue<int> myqueue1;
for (int i = 1; i <= 10; i++)
{myqueue1.push(i);
}
while (!myqueue1.empty())
{cout << myqueue1.front() << " ";myqueue1.pop();
}

 三、 priority_queue的介绍和使用

3.1 什么是优先级队列(priority_queue)?

1. 优先队列是一种容器适配器,根据严格的弱排序标准,它的第一个元素总是它所包含的元素中最大的。

2. 此上下文类似于堆,在堆中可以随时插入元素,并且只能检索最大堆元素(优先队列中位于顶 部的元素)。

3. 优先队列被实现为容器适配器,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从特定容器的“尾部”弹出,其称为优先队列的 顶部。 

4. 需要支持随机访问迭代器,以便始终在内部保持堆结构。容器适配器通过在需要时自动调用 算法函数make_heap、push_heap和pop_heap来自动完成此操作。

在算法中,没有纯粹的使用queue来解题,大多需要使用优先级队列的特性。

3.2 priority_queue的使用

优先级队列默认使用vector作为其底层存储数据的容器,在vector上又使用了堆算法将vector中 元素构造成堆的结构,因此priority_queue就是堆,所有需要用到堆的位置,都可以考虑使用 priority_queue。

注意:默认情况下priority_queue是大堆。

 priority_queue(): 构造一个空的优先级队列

 (1) priority_queue 在内部将 comparing 函数和容器对象保存为 data,它们分别是 comp 和 ctnr 的副本。

(2) 位于其顶部,在 first 和 last 之间插入元素(在容器转换为堆之前)

注意:范围是左闭右开:[first,last)

empty(): 检测优先级队列是否为空,是返回true,否 则返回false  

std::priority_queue<int> mypq;for (int i = 1; i <= 10; i++) mypq.push(i);while (!mypq.empty())
{cout << mypq.top() << " ";mypq.pop();
}

top(): 返回优先级队列中最大(最小元素),即堆顶元素  

因为在使用priority_queue时,是大根堆还是小根堆是我们自己来决定的

vector<int> v{ 3,2,7,6,0,4,1,9,8,5 };
priority_queue<int> q1;
for (auto& e : v)
{q1.push(e);
}
cout << q1.top() << endl;

在priority_queue,还有第三个参数,可以使得大堆与小堆的修改:

#include  <functional>  // greater算法的头文件

// 如果要创建小堆,将第三个模板参数换成greater比较方式priority_queue<int, vector<int>, greater<int>> q2(v.begin(), v.end());cout << q2.top() << endl;

push(): 在优先级队列中插入元素x

vector<int> v{ 3,2,7,6,0,4,1,9,8,5 };
priority_queue<int> q1;
for (auto& e : v)
{q1.push(e);
}

但push()的数据必须具有常量的性质。 

 pop(): 删除优先级队列中最大(最小)元素,即堆顶元素

vector<int> v{ 3,2,7,6,0,4,1,9,8,5 };
priority_queue<int> q1;
for (auto& e : v)
{q1.push(e);
}
while (!q1.empty())
{cout << q1.top() << " ";q1.pop();
}

 

3.3 最具有代表性的一道题

数组中第K个大的元素

class Solution {
public:int findKthLargest(vector<int>& nums, int k) {// 将数组中的元素先放入优先级队列中priority_queue<int> p(nums.begin(), nums.end());// 将优先级队列中前k-1个元素删除掉for (int i = 0; i < k - 1; ++i){p.pop();}return p.top();}
};

 四、 适配器

4.1 什么是适配器?

我们之前就提到无论是stack、queue还是我们现在学习的priority_queue,它的构造函数中class Container=deque<T> 

  它是什么呢?

适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设 计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口。

4.2 STL标准库中stack和queue的底层结构 

我之前说stack与queue是容器,这是一个错误的说法:

虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而是将其称为 容器适配器,这是因为stack和队列只是对其他容器的接口进行了包装,STL中stack和queue默认 使用deque。

4.2.1 duque的原理介绍

deque(双端队列):是一种双开口的"连续"空间的数据结构,双开口的含义是:可以在头尾两端 进行插入和删除操作,且时间复杂度为O(1),与vector比较,头插效率高,不需要搬移元素;与 list比较,空间利用率比较高。 

deque并不是真正连续的空间,而是由一段段连续的小空间拼接而成的,实际deque类似于一个 动态的二维数组。

双端队列底层是一段假象的连续空间,实际是分段连续的,为了维护其“整体连续”以及随机访问 的假象,落在了deque的迭代器身上,因此deque的迭代器设计就比较复杂: 它是如何借助迭代器来维护自己开辟的空间呢?

这里它通过指针,以结构体的形式来链式链接每个节点。

4.2.2 deque的缺陷 

与vector比较,deque的优势是:头部插入和删除时,不需要搬移元素,效率特别高,而且在扩 容时,也不需要搬移大量的元素,因此其效率是必vector高的。 与list比较,其底层是连续空间,空间利用率比较高,不需要存储额外字段。 但是,deque有一个致命缺陷:不适合遍历,因为在遍历时,deque的迭代器要频繁的去检测其 是否移动到某段小空间的边界,导致效率低下,而序列式场景中,可能需要经常遍历,因此在实 际中,需要线性结构时,大多数情况下优先考虑vector和list,deque的应用并不多,而目前能看 到的一个应用就是,STL用其作为stack和queue的底层数据结构。

4.3 为什么选择deque作为stack和queue的底层默认容器 

stack是一种后进先出的特殊线性数据结构,因此只要具有push_back()和pop_back()操作的线性 结构,都可以作为stack的底层容器,比如vector和list都可以;queue是先进先出的特殊线性数据 结构,只要具有push_back和pop_front操作的线性结构,都可以作为queue的底层容器,比如 list。但是STL中对stack和queue默认选择deque作为其底层容器,主要是因为: 1. stack和queue不需要遍历(因此stack和queue没有迭代器),只需要在固定的一端或者两端进 行操作。 2. 在stack中元素增长时,deque比vector的效率高(扩容时不需要搬移大量数据);queue中的 元素增长时,deque不仅效率高,而且内存使用率高。 结合了deque的优点,而完美的避开了其缺陷。

那么到这里我们就学完了栈与队列最简单的认识,继续努力加油吧!!! 

相关文章:

Stack--Queue 栈和队列

一、Stack--栈 1.1 什么是栈&#xff1f; 堆栈是一种容器适配器&#xff0c;专门设计用于在 LIFO 上下文&#xff08;后进先出&#xff09;中运行&#xff0c;其中元素仅从容器的一端插入和提取。 第一个模版参数T&#xff1a;元素的类型&#xff1b;第二个模版参数Container…...

Redis热key大key详解

不要阻挡我走向成功&#xff0c;勇者配享所有&#xff0c;感想敢干 hotkey热key 大量请求可能会使redis节点流量不均匀&#xff0c;进而导致宕机&#xff0c;继而打到数据库崩溃&#xff1b;因此需要对热key优化 引发问题&#xff1a; 分片服务瘫痪可能打到数据库&#xff0…...

软件架构选型之“如何选”

本文提出的多维度评估框架旨在建立客观、全面的架构选型方法论&#xff0c;帮助团队做出更科学的架构决策&#xff0c;通过业务需求、技术约束、组织能力和演进策略四个核心维度建立量化评估模型。该框架旨在解决移动应用架构决策中的主观性和片面性问题&#xff0c;提供系统化…...

C语言写文件模式错误

“w” 和“wb”区别 出错实例 图像.raw文件输出时&#xff0c;采用“w”模式打开写文件&#xff0c;会将值为0A (即\n的ASCII值)&#xff0c;前自动添加0D(即\r的ASCII值)&#xff0c;如下图所示...

2025最新福昕PDF编辑器,PDF万能处理工具

软件介绍 Foxit PDF Editor Pro 2025 中文特别版&#xff08;以前称为 Foxit PhantomPDF Business&#xff09;是一款专为满足各种办公需求而设计的业务就绪的PDF工具包。 软件特点 1. 强大的PDF编辑能力 创建新文档&#xff1a;用户可以从无到有地构建PDF文档&#xff0c;添…...

Android 动态权限申请

ContextCompat.checkSelfPermission 检查应用是否具有某个危险权限。如果应用具有此权限&#xff0c;方法将返回PackageManager.PERMISSION_GRANTED&#xff0c;并且应用可以继续操作。如果应用不具有此权限&#xff0c;方法将返回PackageManager.PERMISSION_DENIED&#xff0c…...

【模型量化】量化基础

目录 一、认识量化 二、量化基础原理 2.1 对称量化和非对称量化 2.1.1 对称量化 2.1.2 非对称量化 2.1.3 量化后的矩阵乘 2.2 神经网络量化 2.2.1 动态量化 2.2.2 静态量化 2.3 量化感知训练 一、认识量化 量化的主要目的是节约显存、提高计算效率以及加快通信 dee…...

智能 + 安全:婴幼儿托育管理实训基地标准化建设方案

婴幼儿托育服务与管理实训基地智能安全的开发&#xff0c;需以“岗位能力-职业标准-行业需求”为核心逻辑&#xff0c;构建“需求分析-课程设计-教学实施-效果评估”全闭环体系。结合托育行业难点、技术赋能手段及职业能力要求&#xff0c;呈现课程开发全流程&#xff0c;重点突…...

AI重构家居营销新范式:DeepSeek如何破解行业流量与转化困局?

1. 流量下滑、成本攀升、内容同质化&#xff1a;家居行业亟需一场“效率革命” 中国家居行业正经历一场深刻的转型阵痛。线下门店客流量持续萎缩&#xff0c;线上获客成本攀升至临界点&#xff0c;传统营销模式陷入“高投入、低转化”的泥潭&#xff1b;智能家居产品快速迭代&…...

机器学习实操 第一部分 机器学习基础 第7章 集成学习与随机森林

机器学习实操 第一部分 机器学习基础 第7章 集成学习与随机森林 内容概要 第7章深入探讨了集成学习方法&#xff0c;这是一种结合多个预测模型&#xff08;如分类器或回归器&#xff09;以提高预测性能的技术。这些方法通过利用群体的智慧&#xff0c;可以比单个模型获得更好…...

如何用GPU Instancing来优化树木草石重复模型

1&#xff09;如何用GPU Instancing来优化树木草石重复模型 2&#xff09;Unity ASTC压缩后的纹理在部分安卓机型上不显示 3&#xff09;现在大部分项目的竖版UI设计分辨率是多少 4&#xff09;Android上拖拽物体不实时跟随手指的问题 这是第430篇UWA技术知识分享的推送&#x…...

Windows服务器部署全攻略:Flask+Vue+MySQL跨平台项目实战(pymysql版)

当你的后端(Flask+pymysql,Windows开发)与前端(Vue,Mac开发)需要统一部署到Windows服务器时,通过「IIS反向代理+原生组件适配」方案可实现稳定交互。以下是针对Windows环境的专属部署指南,解决路径适配、服务启动等核心问题。 一、Windows服务器环境准备(必做!) 1…...

自动驾驶-一位从业两年的独特视角

时间简介 2023.03 作为一名大三学生&#xff0c;加入到某量产车企&#xff0c;从事地图匹配研发 2023.07 地图匹配项目交付&#xff0c;参与离线云端建图研发 2023.10 拿到24届校招offer 2024.07 正式入职 2025.01 离线云端建图稳定&#xff0c;开始接触在线车端融图研发 自动…...

Vue 3 单文件组件中 VCA 语法糖及核心特性详解

在 Vue.js 的开发世界里&#xff0c;单文件组件&#xff08;Single File Components&#xff0c;简称 SFC&#xff09;是构建复杂应用的基石。它将 HTML、CSS 和 JavaScript 代码封装在一个.vue文件中&#xff0c;极大地提高了代码的可维护性和复用性。 本文将深入探讨单文件组…...

iVX:数字化转型全场景技术革新与生态构建实践

在数字经济蓬勃发展的当下&#xff0c;企业数字化转型需求日益迫切。iVX 凭借其独特的技术架构与创新解决方案&#xff0c;深度渗透工业互联网、元宇宙、智慧城市等领域&#xff0c;成为推动全场景数字化转型的重要力量。本文将重新梳理 iVX 的技术应用与生态价值&#xff0c;以…...

车辆检测新突破:VFM-Det 如何用大模型提升识别精度

目录 ​编辑 一、摘要 二、引言 三、相关工作 四、Coovally AI模型训练与应用平台 五、方法 概述 综述&#xff1a;基于区域建议的检测 基于VehicleMAE的感知器 六、实验分析 数据集与评估指标 实现细节 属性预测模块预训练 与SOTA检测器的对比实验 消融实验 V…...

可视化图解算法:判断是否完全二叉树

1. 题目 描述 给定一个二叉树&#xff0c;确定他是否是一个完全二叉树。 完全二叉树的定义&#xff1a;若二叉树的深度为 h&#xff0c;除第 h 层外&#xff0c;其它各层的结点数都达到最大个数&#xff0c;第 h 层所有的叶子结点都连续集中在最左边&#xff0c;这就是完全二…...

对于C++中的STL,push_back()和emplace_back()有什么区别?

1.push_back()&#xff1a; 语法为&#xff1a;container.push_back()&#xff0c;接收一个值或一个对象的移动/复制副本&#xff1b; 在将对象添加或移动到容器的末尾前&#xff0c;需要先调用构造函数实例化对象&#xff0c;然后再执行移动或复制操作。 2.emplace_back()&a…...

小程序中的页面跳转

小程序中的页面跳转 在之前网页的学习中&#xff0c;我们往往采用超链接&#xff0c;或者定义方法、函数等方式来实现页面的跳转&#xff0c;但是微信小程序中没有超链接&#xff0c;那我们该如何实现呢&#xff1f;微信小程序的页面跳转包括两个&#xff0c;一个是tabBar页面…...

分享一款免费的AI IDE Trae,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,更可自定义专属AI模型

分享一款免费的AI IDE Trae&#xff0c;全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,更可自定义专属AI模型,加入我的邀请一起拿好礼,转发给技术搭子还有机会赢取华为MatePad Air、雷蛇机械键盘、热门会员卡等丰厚奖品&#xff0c;即刻体验>>: https://juejin.cn/loy…...

美团优选小程序 mtgsig 分析 mtgsig1.2

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向过程 部分python代码 openId a…...

Java中的多态与继承

Java中的多态与继承 开始学习Java中的多态及如何在多态方法调用中进行方法调用 多态——即对象根据其类型执行特定操作的能力——是Java代码灵活性的核心。四人组&#xff08;Gang Of Four&#xff09;创建的许多设计模式都依赖于某种形式的多态&#xff0c;包括命令模式。本文…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(12): ておき ます

日语学习-日语知识点小记-构建基础-JLPT-N4阶段&#xff08;12&#xff09;&#xff1a; ておき ます。 1、前言&#xff08;1&#xff09;情况说明&#xff08;2&#xff09;工程师的信仰 2、知识点&#xff08;1&#xff09;&#xff5e;ておき ます。&#xff08;2&#x…...

MicroPython for esp32s3开发HX711称重模块指南

一、HX711模块基本介绍 一&#xff09;、核心功能 ‌24位高精度ADC‌ 专为称重传感器设计的模数转换芯片&#xff0c;支持20mV或40mV满幅差分输入内置128/64倍可编程增益放大器&#xff08;通道A&#xff09;及固定32倍增益&#xff08;通道B&#xff09; ‌集成化设计‌ 集成…...

智能机器人在物流行业的应用:效率提升与未来展望

随着全球电子商务的蓬勃发展&#xff0c;物流行业正面临着前所未有的挑战和机遇。传统的物流模式已经难以满足日益增长的市场需求&#xff0c;尤其是在效率、成本控制和精准配送方面。智能机器人技术的出现&#xff0c;为物流行业的转型升级提供了强大的动力。本文将探讨智能机…...

MiWi|Microchip开发的专有无线通信协议,适用于低功耗、短距离的无线个人局域网【无线通信小百科】

1、什么是MiWi MiWi&#xff08;Microchip Wireless&#xff09;是一种由 Microchip 公司开发的专有无线通信协议。 它基于 IEEE 802.15.4 标准&#xff0c;适用于低功耗、短距离的无线个人局域网&#xff08;WPAN&#xff0c;Wireless Personal Area Network&#xff09;。 M…...

分布式事务,事务失效,TC事务协调者

1. 概述 本方案书旨在解决分布式系统中事务一致性问题&#xff0c;重点阐述全局事务标识&#xff08;XID&#xff09;的传递与存储机制、事务协调者&#xff08;TC&#xff09;的设计与部署&#xff0c;以及分布式事务失效场景的应对策略。基于业界成熟框架&#xff08;如Seat…...

ESP32开发-作为TCP客户端发送数据到网络调试助手

​​代码&#xff08;作为TCP客户端&#xff09;​​ #include <SPI.h> #include <EthernetENC.h> // 使用EthernetENC库// 网络配置 byte mac[] {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // MAC地址 IPAddress ip(192, 168, 1, 100); // ESP32的IP IPAddr…...

halcon打开图形窗口

1、dev_open_window 参数如下&#xff1a; 1&#xff09;Row(输入参数) y方向上&#xff0c;图形窗口距离左上角顶端的像素个数 2&#xff09;Column(输入参数) x方向上&#xff0c;距离左上角左边的像素个数 3&#xff09;Width(输入参数) 图形窗口宽度 4&#xff09;He…...

LVGL -按键介绍 下

4 图标 4.1 内置图标 LVGL 提供了一个很方便的 图标字体 系统&#xff0c;它使用了 lv_label 来显示文本或图标。你可以选择 Font Awesome 或其他图标字体&#xff0c;并将其直接嵌入应用中。LVGL 内建图标字体&#xff08;如 LV_SYMBOL_*&#xff09;是可以改变大小的。通过…...

【默子速报】DeepSeek新模型 Prover-V2 报告解读

炸裂&#xff0c;太炸裂了&#xff0c;五一不放假是吧&#xff1f;&#xff01; 默子加班加点的肝解读&#xff01; 首先是&#xff0c;Deepseek今天下午显示毫无预兆的在HF上发布了最新的Prover-V2参数 直接让一群人瞬间热血沸腾&#xff0c;想要看看Deepseek又干了什么大事。…...

冰冰一号教程网--介绍采用vuepress搭建个人博客

文章说明 采用vuepress可以快速搭建个人网站&#xff0c;风格统一&#xff1b;采用GPT可以将博文转化为个人博客网站 冰冰一号教程网 访问地址 目前只支持到 2025年05月1号 22点 教程包括主流编程语言&#xff1a;Java、JavaScript、python、C语言、C、C# 教程讲义由GPT生成&am…...

借助电商 API 接口实现电商平台商品数据分析的详细步骤分享

在数字化商业浪潮中&#xff0c;电商平台积累了海量数据。如何从这些数据中挖掘有价值的信息&#xff0c;成为电商企业提升竞争力的关键。电商 API 接口在这一过程中发挥着核心作用&#xff0c;它为获取和分析商品数据提供了高效途径。本文将详细介绍借助电商 API 接口实现电商…...

32单片机——串口

1、通信 通信的方式可以分为多种&#xff1a; &#xff08;1&#xff09;按照数据传送方式可分为串行通信和并行通信&#xff1b; ①串行通信 基本特征&#xff1a;数据逐位顺序依次传输 优点&#xff1a;传输线少、布线成本低、灵活度高等优点&#xff0c;一般用于近距离人…...

6.应用层

6. 应用层 1. 概述 应用层是计算机网络体系结构的最顶层&#xff0c;是设计和建立计算机网络的最终目的&#xff0c;也是计算机网络中发展最快的部分 早期基于文本的应用&#xff08;电子邮件、远程登录、文件传输、新闻组&#xff09;20世纪90年代将因特网带入千家万户的万维…...

【鸿蒙HarmonyOS】一文详解华为的服务卡片

7.服务卡片 1.什么是卡片 Form Kit&#xff08;卡片开发服务&#xff09;提供一种界面展示形式&#xff0c;可以将应用的重要信息或操作前置到服务卡片&#xff08;以下简称“卡片”&#xff09;&#xff0c;以达到服务直达、减少跳转层级的体验效果。卡片常用于嵌入到其他应…...

深度卷积模型:案例研究

1 为什么要进行案例研究&#xff1f; 过去&#xff0c;计算机视觉中的大量研究都集中在如何将卷积层、池化层以及全连接层这些基本组件组合起来&#xff0c;形成有效的卷积神经网络。 找感觉的最好方法之一就是去看一些示例&#xff0c;就像很多人通过看别人的代码来学习编程一…...

BBR 的 RTT 公平性问题求解

如果 BBR 要跟 reno/cubic 公平&#xff0c;只能顾此失彼&#xff0c;没有任何变通方法&#xff0c;唯一的方法就是在放弃 reno/cubic&#xff0c;但前提你得保证 BBR 流之间是公平的。如果非要照顾 reno/cubic&#xff0c;那就必须要变成 reno/cubic&#xff0c;这就是 BBRv2/…...

SQL命令二:SQL 高级查询与特殊算法

引言 在掌握了 SQL 的基础操作和建表约束后&#xff0c;我们可以进一步探索 SQL 的高级查询功能和一些特殊算法。这些高级技巧能够帮助我们更高效地处理和分析数据&#xff0c;满足复杂的业务需求。 一、查询进阶 &#xff08;一&#xff09;简单查询 简单查询通过 select 语…...

Databend 产品月报(2025年4月)

很高兴为您带来 Databend 2025 年 4 月的最新更新、新功能和改进&#xff01;我们希望这些增强功能对您有所帮助&#xff0c;并期待您的反馈。 BendDeploy&#xff1a;安装 Databend 的新方式 BendDeploy 是由 Databend 开发的一款基于 Kubernetes 的平台&#xff0c;旨在简化…...

Best Video下载器——全能高清无水印视频下载工具

在当今短视频和流媒体盛行的时代&#xff0c;用户经常遇到想要下载视频却受限于平台限制的情况。无论是收藏喜欢的影视片段、保存有价值的教程&#xff0c;还是进行二次创作&#xff0c;一款高效、免费且支持多平台的视频下载工具显得尤为重要。Best Video下载器正是为此而生&a…...

2025东三省D题深圳杯D题数学建模挑战赛数模思路代码文章教学

完整内容请看文章最下面的推广群 一、问题一&#xff1a;混合STR图谱中贡献者人数判定 问题解析 给定混合STR图谱&#xff0c;识别其中的真实贡献者人数是后续基因型分离与个体识别的前提。图谱中每个位点最多应出现2n个峰&#xff08;n为人数&#xff09;&#xff0c;但由…...

这些是什么充电模块调试手段,对USB、Thermal、DP

在电子产品开发中&#xff0c;充电模块调试及对相关模块的了解是保障产品性能与稳定性的关键环节。下面为你详细介绍&#xff1a; 充电模块调试手段&#xff1a;充电模块负责将外部电源的电能转化为适用于设备的电能&#xff0c;并对电池进行充电管理。调试手段包括使用专业的…...

Gradio全解20——Streaming:流式传输的多媒体应用(2)——构建对话式聊天机器人

Gradio全解20——Streaming&#xff1a;流式传输的多媒体应用&#xff08;2&#xff09;——构建对话式聊天机器人 本篇摘要20. Streaming&#xff1a;流式传输的多媒体应用20.2 构建对话式聊天机器人20.2.1 应用概述20.2.2 记录用户音频20.2.3 存储音频并生成响应20.2.4 构建G…...

字节暑期实习-网络运维工程师面经

岗位描述 这个是ByteIntern实习&#xff0c;是暑期实习岗位 岗位 一面 先自我介绍 抓项目技术&#xff08;会进行确认是什么技术&#xff09; TCP的三次握手和四次挥手 序列号和确认应答号的位置和大小 序列号是随机的吗&#xff1f; 序列号为什么是随机的&#xff1f; …...

多用户远程 Debugger 服务隔离方案技术实践

多用户远程 Debugger 服务隔离方案技术实践 摘要&#xff1a; 针对多用户同时连接远程 Debugger 服务可能导致的断点冲突、调试流程干扰等问题&#xff0c;本文基于主流调试工具&#xff08;如 Python debugpy、Java JDWP、Node.js Inspector 等&#xff09;&#xff0c;梳理和…...

华为发布全球首个L3商用智驾ADS4.0

2024年10月2024世界智能网联汽车大会上&#xff0c;余承东讲到&#xff1a;“华为ADS 4.0将于2025年推出高速L3级自动驾驶商用及城区L3级自动驾驶试点&#xff0c;希望加快L3级自动驾驶标准的进程&#xff0c;推动L3级自动驾驶技术的普及。” 世界智能网联汽车大会演讲PPT 所以…...

Silo 科学数据工具库安装与使用指南

Silo 科学数据工具库安装与使用指南 Silo 是一个用于科学数据可视化和分析的工具库&#xff0c;由 Lawrence Livermore National Laboratory (LLNL) 开发。以下是 Silo 的安装和使用方法&#xff1a; 安装 Silo Linux 系统安装 从源码安装&#xff1a; wget https://wci.lln…...

vs2019编译occ7.9.0时,出现fatal error C1060: compiler is out of heap space

问题描述 visual studio 2019编译opencascade 7.9.0时&#xff0c;出现编译错误 fatal error C1060: compiler is out of heap space 解决方案 修改vs2019并行编译的线程个数&#xff0c;默认是12个&#xff0c;我改成了4个&#xff0c;问题解决 Tools > Project and Sol…...

Poco C++全面开发指南:网络应用开发

UDP接收器 项目结构 poco_demo/ ├── CMakeLists.txt ├── src/ │ ├── main.cpp │ └── Receiver.cpp └── include/└── Receiver.h创建 Receiver.h #pragma once#include <Poco/Net/DatagramSocket.h> #include <Poco/Net/SocketAddress.h>…...