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

C++_STL_map与set

1. 关联式容器

在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、 forward_list(C++11)等,这些容器统称为序列式容器,因为其底层为线性序列的数据结构,里面 存储的是元素本身。那什么是关联式容器?它与序列式容器有什么区别?

关联式容器也是用来存储数据的,与序列式容器不同的是,其里面存储的是结构的 键值对,在数据检索时比序列式容器效率更高。

2. 键值对

用来表示具有一一对应关系的一种结构,该结构中一般只包含两个成员变量key和value,key代 表键值,value表示与key对应的信息。比如:现在要建立一个英汉互译的字典,那该字典中必然 有英文单词与其对应的中文含义,而且,英文单词与其中文含义是一一对应的关系,即通过该应 该单词,在词典中就可以找到与其对应的中文含义。

3. 树形结构的关联式容器

根据应用场景的不桶,STL总共实现了两种不同结构的管理式容器:树型结构与哈希结构。树型结 构的关联式容器主要有四种:map、set、multimap、multiset。

这四种容器的共同点是:使 用平衡搜索树(即红黑树)作为其底层结果容器中的元素是一个有序的序列。下面一依次介绍每一 个容器。

3.1  set

set - C++ Reference

翻译:

1. set是按照一定次序存储元素的容器

2. 在set中,元素的value也标识它(value就是key,类型为T),并且每个value必须是唯一的。 set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。

3. 在内部,set中的元素总是按照其内部比较对象(类型比较)所指示的特定严格弱排序准则进行 排序。

4. set容器通过key访问单个元素的速度通常比unordered_set容器慢,但它们允许根据顺序对 子集进行直接迭代。

5. set在底层是用二叉搜索树(红黑树)实现的。

注意:

1. 与map/multimap不同,map/multimap中存储的是真正的键值对,set中只放 value,但在底层实际存放的是由构成的键值对。

2. set中插入元素时,只需要插入value即可,不需要构造键值对。

3. set中的元素不可以重复(因此可以使用set进行去重)。

4. 使用set的迭代器遍历set中的元素,可以得到有序序列

5. set中的元素默认按照小于来比较

6. set中查找某个元素,时间复杂度为:log_2 n

 7. set中的元素不允许修改(为什么?)

8. set中的底层使用二叉搜索树(红黑树)来实现。

关于set的使用就不多说了关键看一些我们之前没见到的接口

set的拷贝代价很大但是搜索的代价很小

同时要注意这个lower_bound 和upper_bound   这两个接口

这里是找这两个区间的值

lower_bound(20)->就是找大于等于key = 25的节点

upper_bound(50)->就是找key>50的这个节点

这样形成一个左闭右开的结构,才可以将我们给的区间里面的东西删除完(迭代器里面的所有操作几乎都是左闭右开的)

而这个count 和equal_range对于met是没有什么意义的,应为set不允许重复,但是对于下面的multiset就很有意义了

3.2multiset

multiple:多样的,其实这个multiset就是可以存储重复的数据

multiset介绍multiset - C++ Reference

具体使用:

void Test_mutiset()
{int arr[] = { 2,4,5,6,7,843,2,4,5,7,9 ,11,45 };multiset<int> s1(arr, arr + (sizeof(arr) / sizeof(int)));for (const auto& e : s1){cout << e << " ";}cout << endl;//find查找(重复数据)返回中序的第一个multiset<int>::iterator it = s1.find(4);while (it != s1.end()){cout << *it << " ";++it;}cout << endl;cout << s1.count(2) << endl;pair<multiset<int>::iterator, multiset<int>::iterator> eq = s1.equal_range(2);while (eq.first != eq.second){cout << *(eq.first) << " ";++eq.first;}cout << endl;}

这里的equal_range返回的是一个pair,我们一般用auto来接收,要不然要写一大堆 

3.3map

讲之前先学习一下pair

pair - C++ Reference

这个pair其实就是一个类(我们也喜欢叫键值对),里面有first和second两个位置可以存储数据,这就方便了,在key_value

(map)里面我们就把这两个放到pair里面,这样对于一个函数返回的时候返回一个pair也方便

map - C++ Reference

翻译:

1. map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元 素。

2. 在map中,键值key通常用于排序和惟一地标识元素,而值value中存储与此键值key关联的 内容。键值key和值value的类型可能不同,并且在map的内部,key与value通过成员类型 value_type绑定在一起,为其取别名称为pair: typedef pair value_type;

3. 在内部,map中的元素总是按照键值key进行比较排序的。

4. map中通过键值访问单个元素的速度通常比unordered_map容器慢,但map允许根据顺序 对元素进行直接迭代(即对map中的元素进行迭代时,可以得到一个有序的序列)。

5. map支持下标访问符,即在[]中放入key,就可以找到与key对应的value。

6. map通常被实现为二叉搜索树(更准确的说:平衡二叉搜索树(红黑树))。

map的插入就比较繁琐,(单参数才能接受隐式类型转化)

void Test_map()
{map<string,string> dict;//插入的方法pair<string, string> p1("insert", "插入");dict.insert(p1);dict.insert(pair<string,string>("right", "右边"));dict.insert(make_pair("sort", "排序"));dict.insert({ "queue","队列" });auto it = dict.begin();while (it != dict.end()){//pair没有重载*所以打印的时候就访问first,second//cout << (*it).first << ":" <<(*it).second << endl;cout << it->first  << ":" << it->second << endl;++it;}cout << endl;
}

第三种也是比较常用的这个就是一个库里面的一个函数,方便构造

最后一种插入方法其实就是隐式类型转换

这里是c++11支持的,而c++98不支持

要注意:map和set里面的key都不能修改,因为改了话就改变了搜索树的结构

set:直接将迭代器全搞为const迭代器,但是map不敢这样搞,因为map要允许修改value

map:用pair来存(类模板)数据。

map的这个重载括号非常有用

【总结】

1. map中的的元素是键值对

2. map中的key是唯一的,并且不能修改

3. 默认按照小于的方式对key进行比较

4. map中的元素如果用迭代器去遍历,可以得到一个有序的序列

5. map的底层为平衡搜索树(红黑树),查找效率比较高O(log N)

6. 支持[]操作符,operator[]中实际进行插入查找。

3.4multimap

multimap - C++ Reference

而这个multimap的插入就不会返回pair,显然也没有重载[],因为key可以重复,你如果还能返回

引用,返回的是谁的引用呢?(有很多数据冗余的)

3.5改进之前做的题

20. 有效的括号 - 力扣(LeetCode)

class Solution {
public:bool isValid(string s) {stack<char> st;map<char,char> matchMap;matchMap['('] = ')';matchMap['{'] = '}';matchMap['['] = ']';for(auto ch:s){if(matchMap.count(ch)){st.push(ch);}else{if(st.empty()){return false;}if(matchMap[st.top()]==ch){st.pop();           }elsereturn false;}}if(st.empty()){return true;}elsereturn false;}
};

这样就可以很方便控制比较逻辑 

138. 随机链表的复制 - 力扣(LeetCode)

之前我们用c语言写过

c语言的思路:

1拷贝节点链接到原链表的后面

2拷贝节点的random是源节点random指向的节点

3拷贝节点解下来 链接成一个新的链表 原链表恢复

之前就是先处理random指针,通过将拷贝节点放到原节点后面,就可以知道原节点random指针指向的节点的下一个就是拷贝节点random指向的那一个

有了map我们可以将Node*用map存起来

就是用一个map存节点(k)和拷贝节点(v)

那么k->random ==v->random,就可以链接上了

这一步很妙(k->random在map里面肯定可以找到拷贝节点的random)

class Solution {
public:Node* copyRandomList(Node* head) {//拷贝节点map<Node*,Node*> matchMap;Node* copyhead=nullptr;Node* copytail=nullptr;Node* cur = head;while(cur){if(copyhead==nullptr){copyhead = copytail = new Node(cur->val);}else{copytail->next = new Node(cur->val);copytail = copytail->next;}matchMap[cur]=copytail;cur = cur->next;}//处理randomcur = head;Node* copy = copyhead;while(cur){if(cur->random ==nullptr){copy->random = nullptr;}else{copy->random = matchMap[cur->random];}cur = cur->next;copy = copy->next;}return copyhead;}};

代码量大大减少!

349. 两个数组的交集 - 力扣(LeetCode)

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {set<int> s1(nums1.begin(),nums1.end());set<int> s2(nums2.begin(),nums2.end());vector<int> v1,v2;vector<int> ret;for(const auto& e:s1){v1.push_back(e);}for(const auto& e:s2){v2.push_back(e);}size_t c1 = 0;size_t c2 = 0;while(c1!=v1.size() && c2!=v2.size()){if(v1[c1]<v2[c2]){c1++;}else if(v1[c1]>v2[c2]){c2++;}else{ret.push_back(v1[c1]);c1++;c2++;}}return ret;}
};

同时还可以求两个数组的交  差  并  原理都是一样的 

692. 前K个高频单词 - 力扣(LeetCode)

这题一看就是两个排序,一个是频率一个是字典序

1 用优先级队列

2我们用map,k为字典,v为次数,全部入map后,k为唯一的

(1)我们将数据导出来

sort 不能对map排序,因为map不是随机迭代器(快排里面有三数取中)

(2)数据导出来之后,string是按照字典序排序的 (map中序导出来(注意导出来的是pair))这时候就用sort去按照频率排序,当然pair里面重载了比较但是他是先比较first的大小再比较second的大小,且升降序是一样的,这样就与我们的要求不同了,我们希望频率是降序,string是升序,而且先比较频率(second)那么我们可以用仿函数自己控制比较逻辑

还有一点,这里涉及排序的稳定性的问题,就是排序后改不改变其他元素的相对顺序,从之前快排的实现我们可以知道,快排是不稳定的,那么排序后就会改变string的相对顺序,这里库里面提供了一个稳定的stable_sort,这个是稳定的可以用

或者我们可以想一个其他的方法

class Solution {
public:struct Greater{//这里我们控制sort的比较逻辑bool operator()(const pair<string,int>& p1,const pair<string,int>& p2){return p1.second>p2.second ||(p1.second==p2.second && p1.first<p2.first);}};vector<string> topKFrequent(vector<string>& words, int k) {map<string,int> countMap;for(const auto& e:words){countMap[e]++;} vector<pair<string,int>> v1;for(const auto &e: countMap){v1.push_back(e);}stable_sort(v1.begin(),v1.end(),Greater());这里注意,我们已经控制比较逻辑,可以用不稳定的sortvector<string> v2;for(size_t i = 0;i<k;i++){v2.push_back(v1[i].first);}return v2;}
};

相关文章:

C++_STL_map与set

1. 关联式容器 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque、 forward_list(C11)等&#xff0c;这些容器统称为序列式容器&#xff0c;因为其底层为线性序列的数据结构&#xff0c;里面 存储的是元素本身。那什么是…...

1949-2022年各省农作物播种面积数据(22个指标)

1949-2022年各省农作物播种面积数据&#xff08;22个指标&#xff09; 1、时间&#xff1a;1949-2022年 2、来源&#xff1a;各省年鉴、国家统计局、农业部、农业年鉴 3、范围&#xff1a;31省 4、指标&#xff1a;年度标识、省份编码、省份名称、农作物总播种面积、粮食作…...

汽车二自由度系统模型以及电动助力转向系统模型

汽车二自由度系统模型与电动助力转向系统&#xff08;EPS&#xff09;的详细建模方案&#xff0c;包含理论推导、MATLAB/Simulink实现代码及参数说明&#xff1a; 一、二自由度汽车模型 1. 模型描述 包含以下两个自由度&#xff1a; 横向运动&#xff08;侧向加速度&#xf…...

【学习笔记】计算机操作系统(四)—— 存储器管理

第四章 存储器管理 文章目录 第四章 存储器管理4.1 存储器的层次结构4.1.1 多层结构的存储器系统4.1.2 主存储器与寄存器4.1.3 高速缓存和磁盘缓存 4.2 程序的装入和链接4.2.1 程序的装入4.2.2 程序的链接 4.3 连续分配存储管理方式4.3.1 单一连续分配4.3.2 固定分区分配4.3.3 …...

51单片机的lcd12864驱动程序

#include <reg51.h> #include <intrins.h>#define uchar...

(03)数字化转型之库存管理:从进库到出库的数字化运营

在当今竞争激烈的商业环境中&#xff0c;高效的库存管理已成为企业降低成本、提高运营效率的关键。本文将系统性地介绍库存管理的全流程&#xff0c;包括进库、出库、移库、盘点等核心环节&#xff0c;帮助企业构建科学合理的库存管理体系。 一、进库管理&#xff1a;从计划到执…...

windows编程中加载DLL的两种典型方式的比较

文章目录 DLL定义头文件定义CPP实现DLL的调用代码直接使用通过LoadLibrary调用导入表的依赖LoadLibrary使用DLL库中的类DLL中定义工厂函数调用时的代码补充:为什么LoadLibrary不能直接导出类在windows的编程中,使用DLL是一个非常常见的操作。一般来说,有两种集成DLL的方式:…...

存储器上如何存储1和0

在计算机存储器中&#xff0c;数据最终以**二进制形式&#xff08;0和1&#xff09;**存储&#xff0c;这是由硬件特性和电子电路的物理特性决定的。以下是具体存储方式的详细解析&#xff1a; 一、存储的物理基础&#xff1a;半导体电路与电平信号 计算机存储器&#xff08;…...

【笔记】记一次PyCharm的问题反馈

#工作记录 最近更新至 PyCharm 社区版的最新版本后&#xff0c;我遇到了多个影响使用体验的问题。令人感到不便的是&#xff0c;一些在旧版本中非常便捷的功能&#xff0c;在新版本中却变得操作复杂、不够直观。过去&#xff0c;我一直通过 PyCharm 内置的故障报告与反馈机制反…...

logrotate按文件大小进行日志切割

✅ 编写logrotate文件&#xff0c;进行自定义切割方式 adminip-127-0-0-1:/data/test$ cat /etc/logrotate.d/test /data/test/test.log {size 1024M #文件达到1G就切割rotate 100 #保留100个文件compressdelaycompressmissingoknotifemptycopytruncate #这个情况服务不用…...

基于大模型的脑出血智能诊疗与康复技术方案

目录 一、术前阶段1.1 数据采集与预处理系统伪代码实现流程图1.2 特征提取与选择模块伪代码实现流程图1.3 大模型风险评估系统伪代码实现流程图二、术中阶段2.1 智能手术规划系统伪代码实现流程图2.2 麻醉智能监控系统伪代码实现流程图三、术后阶段3.1 并发症预测系统伪代码片段…...

P21-RNN-心脏病预测

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 一、RNN 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;简称 RNN&#xff09;是一类以序列数据为输入&#xff0c;在序列的演进方向进行递归…...

懒汉式单例模式的线程安全实现

懒汉式单例模式的线程安全实现 懒汉式单例模式的核心特点是延迟实例化(在第一次使用时创建对象),但其基础实现存在线程安全问题。以下是不同线程安全实现方式的详细说明和对比: 1. 非线程安全的基础懒汉式 public class UnsafeLazySingleton {private static UnsafeLazyS…...

Java 常用的Arrays函数

文章目录 ArrayssorttoStringbinarySearchequalsfill 数组拷贝copyOfcopyOfRangearraycopy 二维数组定义遍历deepToString空指针异常 Arrays sort int[] array new int[]{1,20,3}; Arrays.sort(array);// 1 3 20toString 帮助数组转为字符串 int[] array new int[]{1,2,3…...

FEKO许可证与版本兼容性问题

随着电磁仿真技术的不断进步&#xff0c;FEKO软件不断更新迭代&#xff0c;为用户提供更强大的功能和更优秀的性能。然而&#xff0c;在升级过程中&#xff0c;FEKO许可证与版本兼容性问题往往成为用户关注的焦点。本文将为您详细解读FEKO许可证与版本兼容性问题&#xff0c;帮…...

HarmonyOs开发之——— ArkWeb 实战指南

HarmonyOs开发之——— ArkWeb 实战指南 谢谢关注!! 前言:上一篇文章主要介绍HarmonyOs开发之———合理使用动画与转场:CSDN 博客链接 一、ArkWeb 组件基础与生命周期管理 1.1 Web 组件核心能力概述 ArkWeb 的Web组件支持加载本地或在线网页,提供完整的生命周期回调体…...

冰箱磁力贴认证标准16CFR1262

在亚马逊平台&#xff0c;冰箱磁力贴这类可能被儿童接触到的产品&#xff0c;有着严格的规范哦。必须得遵守 16 CFR 1262 标准&#xff0c;还得有符合该标准的测试报告和 GCC 证书&#xff0c;不然产品就可能被禁止销售或者面临召回&#xff0c;那可就损失大啦&#xff01; ​ …...

Java中的锁机制全解析:从synchronized到分布式锁

在多线程编程中&#xff0c;锁是保证线程安全的核心工具。本文将详解Java中常见的锁机制及其实际应用场景&#xff0c;帮助开发者选择最合适的锁方案。 一、内置锁&#xff1a;synchronized 原理 通过JVM内置的监视器锁&#xff08;Monitor&#xff09;实现&#xff0c;可修…...

OptiStruct实例:3D实体转子分析

上一节介绍了1D转子的临界转速分析。在1D转子模型中&#xff0c;转子是以集中质量单元的形式建模的。此种建模方法不可避免地会带来一些简化和局部特征的缺失。接下来介绍OptiStruct3D实体转子的建模及临界转速分析实例。 3D实体转子建立详细的转子网格模型&#xff0c;然后将…...

简单记录坐标变换

以三维空间坐标系为例 rTt代表机械手末端相对robot root坐标系的变换关系 rTt dot p_in_tool 可以把tool坐标系下表示的某点转到root坐标系表示 其中rTt表示tool相对于root坐标系的平移和旋转 以二维图像坐标系为例说明 1坐标系定为图片坐标系左上角&#xff0c;横平竖直的…...

自定义快捷键软件:AutoHotkey 高效的快捷键执行脚本软件

AutoHotkey 是一种适用于 Windows 的免费开源脚本语言&#xff0c;它允许用户轻松创建从小型到复杂的脚本&#xff0c;用于各种任务&#xff0c;例如&#xff1a;表单填充、自动点击、宏等。 定义鼠标和键盘的热键&#xff0c;重新映射按键或按钮&#xff0c;并进行类似自动更…...

【Android构建系统】了解Soong构建系统

背景介绍 在Android7.0之前&#xff0c;Android使用GNU Make描述和执行build规则。Android7.0引入了Soong构建系统&#xff0c;弥补Make构建系统在Android层面变慢、容易出错、无法扩展且难以测试等缺点。 Soong利用Kati GNU Make克隆工具和Ninja构建系统组件来加速Android的…...

显性知识的主要特征

有4个主要特征&#xff1a; 客观存在性静态存在性可共享性认知元能性...

STM32F407VET6实战:CRC校验

CRC校验在数据传输快&#xff0c;且量大的时候使用。下面是STM32F407VET6HAL库使用CRC校验的思路。 步骤实现&#xff1a; CubeMX配置 c // 在CubeMX中启用CRC模块 // AHB总线时钟自动启用 HAL库代码 c // 初始化&#xff08;main函数中&#xff09; CRC_HandleTypeDef …...

LeetCode 746 使用最小花费爬楼梯

当然可以&#xff01;LeetCode 746 是一道经典的动态规划入门题&#xff0c;我来用 C 为你详细解释。 题目描述 给定一个整数数组 cost&#xff0c;其中每个元素 cost[i] 表示从第 i 个台阶向上爬需要支付的费用。一旦支付费用&#xff0c;你可以选择向上爬 1 步 或 2 步。 你…...

隧道结构安全在线监测系统解决方案

一、方案背景 隧道是地下隐蔽工程&#xff0c;会受到潜在、无法预知的地质因素影响。随着我国公路交通建设的发展&#xff0c;隧道占新建公路里程的比例越来越大。隧道属于线状工程&#xff0c;有的规模较大&#xff0c;可长达几公里或数十公里&#xff0c;往往穿越许多不同环境…...

牛客网NC22000:数字反转之-三位数

牛客网NC22000:数字反转之-三位数 &#x1f50d; 题目描述 时间限制&#xff1a;C/C/Rust/Pascal 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C/Rust/Pascal 32M&#xff0c;其他语言64M &#x1f4dd; 输入输出说明 输入描述: 输入一个3位整数n (100 ≤ n ≤ 999)…...

等离子模块【杀菌消毒】

图片来源于网络&#xff0c;与任何公司或实验室无关。 洗衣机中的等离子模块&#xff0c;又叫等离子杀菌模块或等离子发生器&#xff0c;是一种利用等离子体技术进行杀菌消毒、除异味、净化空气的部件。 输出正高压&#xff1a;3.0KV~4.0KV 输出负高压&#xff1a;-3.…...

LlamaIndex 第九篇 Indexing索引

索引概述 数据加载完成后&#xff0c;您将获得一个文档对象(Document)列表&#xff08;或节点(Node)列表&#xff09;。接下来需要为这些对象构建索引(Index)&#xff0c;以便开始执行查询。 索引&#xff08;Index&#xff09; 是一种数据结构&#xff0c;能够让我们快速检索…...

PCIe Switch 问题点

系列文章目录 文章目录 系列文章目录完善PCIe Retimer Overview Document OutlineSwitch 维度BroadComMicroChipAsmedia 祥硕Cyan其他 完善 Functional block diagram&#xff0c;功能框图Key Features and Benefits&#xff0c;主要功能和优点Fabric 链路Multi-root PCIe Re…...

Linux》Ubuntu》安装Harbor 私有仓库

Harbor 下载Harbor地址 # 下载测试镜像 docker pull hello-world# 给镜像重新打标签 docker tag hello-world serverip/library/hello-world:latest# 登录进行上传 docker login serverip docker push serverip/library/hello-world:latest...

2025 Adobe Acrobat DC安装教程

Adobe Acrobat DC是由Adobe公司开发的一款PDF编辑软件&#xff0c;具有将各种文件扫描至PDF、转换PDF文档&#xff1b;编辑PDF、将PDF转换为Word、Excel、打印PDF&#xff1b;创建富媒体PDF文件等功能。 一.软件下载 点此下载 https://pan.xunlei.com/s/VOQDq6Tk1KUFmyCw9M1E…...

第八节第三部分:认识枚举、枚举的作用和应用场景

认识枚举 枚举的概述 枚举的特点 枚举的应用场景 代码&#xff1a; 代码一&#xff1a;认识枚举 A&#xff08;枚举&#xff09; package com.d6_enum;public enum A {//注意&#xff1a;枚举类的第一行必须罗列的是枚举对象的名字X,Y,Z;private String name;public String…...

WEB安全--Java安全--shiro721反序列化漏洞

一、前言 既然我把shiro721和shiro550分开写&#xff0c;就说明两者是有区别的 不过两者的概念和作用也是大相径庭的&#xff0c;这里就不再赘述 可以参考上一篇文章&#xff1a; WEB安全--Java安全--shiro550反序列化漏洞-CSDN博客 二、shiro721 2.1、原理 区别于shiro5…...

[Lc] 5.16 One question a day周总结

感受&#xff1a; 一个数据结构 表示不了&#xff0c;那就再用一个数据结构来帮助标识 逻辑清晰的分析出过程 就一定能写出来~ dp 逆构 依照上述 3 个条件&#xff0c;筛选字符串即可 历程 最开始一眼dp&#xff0c;后来发现要return string&#xff0c;看数据也不是很大&…...

【数据机构】2. 线性表之“链表”

- 第 97 篇 - Date: 2025 - 05 - 16 Author: 郑龙浩/仟墨 【数据结构 2】 续上一篇 线性表之“顺序表” 文章目录 3 链表(用指针来首位相连)① 基本介绍② 分类 与 变量命名1 &#xff09;分类&#xff1a;2 &#xff09;大体介绍不同结构&#xff1a; ③ “单链表” 的实现:*…...

《数字藏品APP开发:解锁高效用户身份认证与KYC流程》

开发一款数字藏品APP&#xff0c;要面对诸多复杂且关键的环节&#xff0c;其中&#xff0c;实现高效的用户身份认证与KYC&#xff08;了解你的客户&#xff09;流程&#xff0c;无疑是重中之重。这不仅关乎用户资产安全与平台合规运营&#xff0c;更是构建用户信任、保障平台可…...

问题 | 国内外软件定义卫星最新进展研究

软件定义卫星 **一、国内进展****二、国际进展****三、未来发展方向****总结** 软件定义卫星&#xff08;Software-Defined Satellite, SDS&#xff09;作为航天领域的重要技术革新方向&#xff0c;近年来在全球范围内发展迅速。其核心是通过开放式架构和动态软件配置实现卫星功…...

安全生产调度管理系统的核心功能模块

安全生产调度管理系统是运用现代信息技术构建的智能化管理平台&#xff0c;旨在实现生产安全风险的全面管控和应急资源的优化调度。该系统通过整合物联网、大数据、人工智能等前沿技术&#xff0c;建立起覆盖风险监测、预警预测、指挥调度、决策支持的全链条安全管理体系。 一…...

RNope:结合 RoPE 和 NoPE 的长文本建模架构

TL;DR 2025 年 Cohere 提出的一种高效且强大的长上下文建模架构——RNope-SWA。通过系统分析注意力模式、位置编码机制与训练策略&#xff0c;该架构不仅在长上下文任务上取得了当前最优的表现&#xff0c;还在短上下文任务和训练/推理效率方面实现了良好平衡。 Paper name …...

22、能源监控与优化 - 数据中心模拟 - /能源管理组件/data-center-energy-monitoring

76个工业组件库示例汇总 能源监控与优化组件 - 数据中心模拟 1. 组件概述 本组件旨在模拟一个典型数据中心的能源消耗情况&#xff0c;并提供实时的监控数据和基本的优化建议/警报功能。用户可以通过界面直观地了解数据中心总体功耗、PUE (电源使用效率)、各部分能耗构成、机…...

docker学习与使用(概念、镜像、容器、数据卷、dockerfile等)

文章目录 前言引入docker 简介docker的应用场景docker的虚拟化技术VS虚拟机docker的优点docker架构Docker仓库Docker镜像linux操作系统的大致组成部分 Docker容器 docker安装与启动校验版本移除旧的版本安装依赖工具设置软件源安装docker验证 配置镜像加速器docker服务相关命令…...

突围“百机大战”,云轴科技ZStack智塔获IDC中国AI大模型一体机推荐品牌

随着DeepSeek在今年年初火爆全球&#xff0c;AI大模型市场的“百模大战”已迅速燃向AI一体机市场形成“百机大战”。近日&#xff0c;国际数据公司&#xff08;IDC&#xff09;发布的《中国AI大模型一体机市场分析与品牌推荐2025》报告显示&#xff0c;当前中国市场有100多家厂…...

Python-homework

1.if_name_main的含义&#xff0c;why? 假设有一个文件 module.py&#xff0c;内容如下&#xff1a; def greet():print("Hello from module!")if __name__ __main__:print("This is the main script.")greet()如果直接执行 module.py&#xff1a; pyt…...

内核性能测试(60s不丢包性能)

以xGAP-200-SE7K-L&#xff08;双口10G&#xff09;在飞腾D2000上为例&#xff08;单通道最高性能约2.8Gbps) 单口测试 0口&#xff1a; tcp&#xff1a; taskset -c 4 iperf -c 1.1.1.1 -i 1 -t 60 -p 60001 taskset -c 4 iperf -s -i 1 -p 60001 udp&#xff1a; taskse…...

解决LeetCode 47. 全排列 II 问题的正确姿势:深入分析剪枝与状态跟踪

文章目录 问题描述常见错误代码与问题分析错误代码示例错误分析 正确解决方案修正后的代码关键修正点 核心逻辑详解1. 为何使用 boolean[] used 而非 HashSet&#xff1f;2. 剪枝条件 !used[i - 1] 的作用 场景对比&#xff1a;何时用数组&#xff1f;何时用哈希表&#xff1f;…...

面向SDV的在环测试深度解析——仿真中间件SIL KIT应用篇

1.引言 在汽车行业向软件定义汽车&#xff08;SDV&#xff09;转型的过程中&#xff0c;传统硬件在环&#xff08;HIL&#xff09;测试方案因难以适应新的技术架构与需求&#xff0c;其局限性日益凸显。传统HIL对硬件依赖性强&#xff0c;扩展性差&#xff0c;更换ECU或传感器…...

03算法学习_977、有序数组的平方

03算法学习_977、有序数组的平方 03算法学习_977、有序数组的平方题目描述&#xff1a;个人代码&#xff1a;学习思路&#xff1a;移除元素第一种写法&#xff1a;暴力解法题解关键点&#xff1a; 移除元素第二种写法&#xff1a;双指针法&#xff08;快慢指针&#xff09;题解…...

AWS Elastic Beanstalk控制台部署Spring极简工程(LB版)

问题 之前文章《AWS Elastic Beanstalk控制台部署Spring极简工程》&#xff0c;是最简单的eb设置&#xff0c;里面没有负载均衡器的配置&#xff0c;这次&#xff0c;我需要尝试创建一个有LB的eb部署。 步骤 配置eb 打开eb网页开始创建应用程序&#xff0c;如下图&#xff…...

前端JSON序列化中的隐形杀手:精度丢失全解析与实战解决方案

当你在电商平台看到订单ID从 “1298035313029456899” 变成 “1298035313029456900”&#xff0c;或者在金融系统中发现账户余额 100.01 元变成了 100.00999999999999 元时&#xff0c;这很可能遭遇了前端开发中最隐蔽的陷阱之一 —— JSON序列化精度丢失。本文将深入解析这一问…...