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

C++的STL 中 set.map multiset.multimap 学习使用详细讲解(含配套OJ题练习使用详细解答)

目录

一、set

1.set的介绍

2.set的使用

2.1 set的模板参数列表

2.2 set的构造

2.3 set的迭代器

2.4 set的容量

2.5 set的修改操作

2.6 set的使用举例

二、map

1.map的介绍

2.map的使用

2.1 map的模板参数说明

2.2 map的构造

2.3 map的迭代器

2.4 map的容量与元素访问

2.5 map中元素的修改

2.6 map的使用举例

三、multiset

1.multiset的介绍

2.multiset的使用

四、multimap

1.multimap的介绍

2.multimap的使用

五、OJ题练习使用

1.前K个高频单词

2.两个数组的交集

六、完结撒❀


一、set

1.set的介绍

set文档介绍

翻译:
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 中存储的是真正的键值对 <key, value> set 中只放
value ,但在底层实际存放的是由 <value, value> 构成的键值对。
2. set 中插入元素时,只需要插入 value 即可,不需要构造键值对。
3. set 中的元素不可以重复 ( 因此可以使用 set 进行去重 )
4. 使用 set 的迭代器遍历 set 中的元素,可以得到有序序列
5. set 中的元素默认按照小于来比较
6. set 中查找某个元素,时间复杂度为: log2 n
7. set 中的元素不允许修改 ( 为什么 ? --- 麻烦 排序的维护,唯一性的维护,时间复杂度的维护)
8. set 中的底层使用二叉搜索树 ( 红黑树 ) 来实现。

2.set的使用

2.1 set的模板参数列表

T: set 中存放元素的类型,实际在底层存储 <value, value> 的键值对。
Compare set 中元素默认按照小于来比较
Alloc set 中元素空间的管理方式,使用 STL 提供的空间配置器管理

2.2 set的构造

函数声明功能介绍
set(const Compare& comp = Compare(),const Allocstor& = Allocator());构造空的set
set(InputIterator first,InputIterator last,const Compare& comp = Compare(),const Allocator& = Allocator());用[first,last)区间中的元素构造set
set(const set<Key,Compare,Allocator>& x);set的拷贝构造

2.3 set的迭代器

函数声明功能介绍
iterator begin()返回set中起始位置元素的迭代器
iterator end()
返回 set 中最后一个元素后面的迭代器
const_iterator cbegin()
const
返回 set 中起始位置元素的 const 迭代器
const_iterator cend() const
返回 set 中最后一个元素后面的 const 迭代器
reverse_iterator rbegin()
返回 set 第一个元素的反向迭代器,即 end
reverse_iterator rend()
返回 set 最后一个元素下一个位置的反向迭代器,
rbegin
const_reverse_iterator
crbegin() const
返回 set 第一个元素的反向 const 迭代器,即 cend
const_reverse_iterator
crend() const
返回 set 最后一个元素下一个位置的反向 const
代器,即 crbegin

2.4 set的容量

函数声明功能介绍
bool empty() const检测set是否为空,空返回true,否则返回false
size_type size() const返回set中有效元素个数

2.5 set的修改操作

函数声明功能介绍
pair<iterator,bool> insert (const value_type& x )
set 中插入元素 x ,实际插入的是 <x, x> 构成的
键值对,如果插入成功,返回 < 该元素在 set 中的
位置, true>, 如果插入失败,说明 x set 中已经
存在,返回 <x set 中的位置, false>
void erase ( iterator position )
删除 set position 位置上的元素
size_type erase ( const key_type& x )
删除 set 中值为 x 的元素,返回删除的元素的个数
void erase ( iterator first, iterator last )
删除 set [first, last) 区间中的元素
void swap ( set<Key,Compare,Allocator>& st);
交换 set 中的元素
void clear ( )
set 中的元素清空
iterator find ( const key_type& x ) const
返回 set 中值为 x 的元素的位置,没有找到返回end()
size_type count ( const key_type& x ) const
返回 set 中值为 x 的元素的个数

2.6 set的使用举例

#include <set>
void TestSet()
{// 用数组array中的元素构造setint array[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0, 1, 3, 5, 7, 9, 2, 4,
6, 8, 0 };set<int> s(array, array + sizeof(array) / sizeof(array[0]));cout << s.size() << endl;// 正向打印set中的元素,从打印结果中可以看出:set可去重for (auto& e : s)cout << e << " ";cout << endl;// 使用迭代器逆向打印set中的元素for (auto it = s.rbegin(); it != s.rend(); ++it)cout << *it << " ";cout << endl;// set中值为3的元素出现了几次cout << s.count(3) << endl;
}

二、map

1.map的介绍

map的文档介绍

翻译:
1.map是关联容器,它按照特定的次序 ( 按照 key 来比较 ) 存储由键值 key 和值 value 组合而成的元 素。
2. map 中,键值 key 通常用于排序和唯一的标识元素,而值 value 中存储与此键值 key 关联的
内容。键值 key 和值 value 的类型可能不同,并且在 map 的内部, key value 通过成员类型
value_type 绑定在一起,为其取别名称为 pair: typedef pair<const key, T> value_type;
3. 在内部, map 中的元素总是按照键值 key 进行比较排序的。
4.map 中通过键值访问单个元素的速度通常比 unordered_map 容器慢,但 map 允许根据顺序
对元素进行直接迭代 ( 即对 map 中的元素进行迭代时,可以得到一个有序的序列 )
5.map 支持下标访问符,即在 [ ] 中放入 key ,就可以找到与 key 对应的 value
6.map 通常被实现为二叉搜索树 ( 更准确的说:平衡二叉搜索树 ( 红黑树 ))

2.map的使用

2.1 map的模板参数说明

key: 键值对中 key 的类型
T : 键值对中 value 的类型
Compare: 比较器的类型, map 中的元素是按照 key 来比较的,缺省情况下按照小于来比
较,一般情况下 ( 内置类型元素 ) 该参数不需要传递,如果无法比较时 ( 自定义类型 ) ,需要用户
自己显式传递比较规则 ( 一般情况下按照函数指针或者仿函数来传递 )
Alloc :通过空间配置器来申请底层空间,不需要用户传递,除非用户不想使用标准库提供的
空间配置器
注意:在使用 map 时,需要包含头文件。

2.2 map的构造

函数声明功能介绍
map()构造一个空的map

2.3 map的迭代器

函数声明功能介绍
begin()和end()
begin: 首元素的位置, end 最后一个元素的下一个位置
cbegin()和cend()
begin end 意义相同,但 cbegin cend 所指向的元素不
能修改
rbegin()和rend()
反向迭代器, rbegin end 位置, rend begin 位置,其
++ -- 操作与 begin end 操作移动相反
crbegin()和crend()
rbegin rend 位置相同,操作相同,但 crbegin crend
指向的元素不能修改

2.4 map的容量与元素访问

函数声明功能介绍
bool empty ( ) const
检测 map 中的元素是否为空,是返回
true ,否则返回 false
size_type size() const
返回 map 中有效元素的个数
mapped_type& operator[] (const
key_type& k)
返回 key 对应的 value
问题:当 key 不在 map 中时,通过 operator 获取对应 value 时会发生什么问题?

注意:在元素访问时,有一个与 operator[] 类似的操作 at()( 该函数不常用 ) 函数,都是通过
key 找到与 key 对应的 value 然后返回其引用,不同的是: key 不存在时, operator[] 用默认
value key 构造键值对然后插入,返回该默认 value at() 函数直接抛异常

2.5 map中元素的修改

函数声明功能简介
pair<iterator,bool> insert (const value_type& x)
map 中插入键值对 x ,注意 x 是一个键值 对,返回值也是键值对: iterator 代表新插入 元素的位置, bool 代表释放插入成功
void erase ( iterator position )
删除 position 位置上的元素
size_type erase ( const key_type& x )
删除键值为 x 的元素
void erase ( iterator first, iterator last )
删除 [first, last) 区间中的元素
void swap ( map<Key,T,Compare,Allocator>& mp)
交换两个 map 中的元素
void clear ( )
map 中的元素清空
iterator find ( const key_type& x )
map 中插入 key x 的元素,找到返回该元 素的位置的迭代器,否则返回 end
const_iterator find ( const key_type& x ) const
map 中插入 key x 的元素,找到返回该元 素的位置的 const 迭代器,否则返回 cend
size_type count ( const key_type& x ) const
返回 key x 的键值在 map 中的个数,注意 map key 是唯一的,因此该函数的返回值 要么为 0 ,要么为 1 ,因此也可以用该函数来
检测一个 key 是否在 map

2.6 map的使用举例

#include <string>
#include <map>
void TestMap()
{map<string, string> m;// 向map中插入元素的方式:// 将键值对<"peach","桃子">插入map中,用pair直接来构造键值对m.insert(pair<string, string>("peach", "桃子"));// 将键值对<"peach","桃子">插入map中,用make_pair函数来构造键值对m.insert(make_pair("banan", "香蕉"));// 借用operator[]向map中插入元素/*operator[]的原理是:用<key, T()>构造一个键值对,然后调用insert()函数将该键值对插入到map中如果key已经存在,插入失败,insert函数返回该key所在位置的迭代器如果key不存在,插入成功,insert函数返回新插入元素所在位置的迭代器operator[]函数最后将insert返回值键值对中的value返回*/// 将<"apple", "">插入map中,插入成功,返回value的引用,将“苹果”赋值给该引用结果,m["apple"] = "苹果";// key不存在时抛异常//m.at("waterme") = "水蜜桃";cout << m.size() << endl;// 用迭代器去遍历map中的元素,可以得到一个按照key排序的序列for (auto& e : m)cout << e.first << "--->" << e.second << endl;cout << endl;// map中的键值对key一定是唯一的,如果key存在将插入失败auto ret = m.insert(make_pair("peach", "桃色"));if (ret.second)cout << "<peach, 桃色>不在map中, 已经插入" << endl;elsecout << "键值为peach的元素已经存在:" << ret.first->first << "--->"<< ret.first->second << " 插入失败" << endl;// 删除key为"apple"的元素m.erase("apple");if (1 == m.count("apple"))cout << "apple还在" << endl;elsecout << "apple被吃了" << endl;
}
【总结】
1. map 中的的元素是键值对
2. map 中的 key 是唯一的,并且不能修改
3. 默认按照小于的方式对 key 进行比较
4. map 中的元素如果用迭代器去遍历,可以得到一个有序的序列
5. map 的底层为平衡搜索树 ( 红黑树 ) ,查找效率比较高 O(log_2 N)
6. 支持 [] 操作符, operator[] 中实际进行插入查找。

三、multiset

1.multiset的介绍

multiset文档介绍

[ 翻译 ]
1. multiset 是按照特定顺序存储元素的容器,其中元素是可以重复的。
2. multiset 中,元素的 value 也会识别它 ( 因为 multiset 中本身存储的就是 <value, value> 组成
的键值对,因此 value 本身就是 key key 就是 value ,类型为 T). multiset 元素的值不能在容器
中进行修改 ( 因为元素总是 const ) ,但可以从容器中插入或删除。
3. 在内部, multiset 中的元素总是按照其内部比较规则 ( 类型比较 ) 所指示的特定严格弱排序准则进行排序。
4. multiset 容器通过 key 访问单个元素的速度通常比 unordered_multiset 容器慢,但当使用迭
代器遍历时会得到一个有序序列。
5. multiset 底层结构为二叉搜索树 ( 红黑树 )。
注意:
1. multiset 中在底层中存储的是 <value, value> 的键值对
2. multiset 的插入接口中只需要插入即可
3. set 的区别是, multiset 中的元素可以重复, set 是中 value 是唯一的
4. 使用迭代器对 multiset 中的元素进行遍历,可以得到有序的序列
5. multiset 中的元素不能修改
6. multiset 中找某个元素,时间复杂度为 O(log_2 N)
7. multiset 的作用:可以对元素进行排序

2.multiset的使用

此处只简单演示 set multiset 的不同,其他接口与 set 相同,可参考 set
#include <set>
void TestSet()
{int array[] = { 2, 1, 3, 9, 6, 0, 5, 8, 4, 7 };// 注意:multiset在底层实际存储的是<int, int>的键值对multiset<int> s(array, array + sizeof(array) / sizeof(array[0]));for (auto& e : s)cout << e << " ";cout << endl;return 0;
}

四、multimap

1.multimap的介绍

multimap文档链接

翻译:
1. Multimaps 是关联式容器,它按照特定的顺序,存储由 key value 映射成的键值对 <key,
value> ,其中多个键值对之间的 key 是可以重复的
2. multimap 中,通常按照 key 排序和唯一地标识元素,而映射的 value 存储与 key 关联的内
容。 key value 的类型可能不同,通过 multimap 内部的成员类型 value_type 组合在一起,
value_type 是组合 key value 的键值对 :
typedef pair<const Key, T> value_type;
3. 在内部, multimap 中的元素总是通过其内部比较对象,按照指定的特定严格弱排序标准对
key 进行排序的。
4. multimap 通过 key 访问单个元素的速度通常比 unordered_multimap 容器慢,但是使用迭代
器直接遍历 multimap 中的元素可以得到关于 key 有序的序列。
5. multimap 在底层用二叉搜索树 ( 红黑树 ) 来实现。
注意: multimap map 的唯一不同就是: map 中的 key 是唯一的,而 multimap key 是可以
重复的

2.multimap的使用

multimap 中的接口可以参考 map ,功能都是类似的。
注意:
1. multimap 中的 key 是可以重复的。
2. multimap 中的元素默认将 key 按照小于来比较
3. multimap 中没有重载 operator[] 操作 ( 可思考下为什么 ?) 。(多个key与value没有形成映射关系)
4. 使用时与 map 包含的头文件相同。

 五、OJ题练习使用

1.前K个高频单词

题目:

基本思路:

使用map将所有单词出现的次数进行存储,在使用vector进行排序,再将前K个push_back到新的vector里面进行返回。

解题代码:

class Solution {
public:struct kvCom{bool operator()(const pair<string,int> V1,const pair<string,int> V2){return (V1.second > V2.second) || (V1.second == V2.second && V1.first < V2.first);}};vector<string> topKFrequent(vector<string>& words, int k) {map<string,int> CountMap;for(auto& e : words){CountMap[e]++;}//按照int排序vector<pair<string,int>> v(CountMap.begin(),CountMap.end()); //stable_sort(v.begin(),v.end(),kvCom());sort(v.begin(),v.end(),kvCom());vector<string> vs;for(size_t i=0; i<k;i++){//cout<<v[i].first<<":"<<v[i].second<<endl;vs.push_back(v[i].first);}return vs;}
};

 2.两个数组的交集

题目:

基本思路:
通过将两个数组分别存进两个set里面(这一步也完成了去重,防止出现多个交集),再用一个vector进行存储返回,之后在其中一个set中查找是否存在另一个set中的值,若存在则push_back到vector中,循环操作,最后将vector进行返回。

解题代码:

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> v;for(auto e : s1){auto ret = s2.find(e);if(ret != s2.end()){v.push_back(*ret);}}return v;}
};

六、完结撒❀

如果以上内容对你有帮助不妨点赞支持一下,以后还会分享更多编程知识,我们一起进步。
最后我想讲的是,据说点赞的都能找到漂亮女朋友❤

相关文章:

C++的STL 中 set.map multiset.multimap 学习使用详细讲解(含配套OJ题练习使用详细解答)

目录 一、set 1.set的介绍 2.set的使用 2.1 set的模板参数列表 2.2 set的构造 2.3 set的迭代器 2.4 set的容量 2.5 set的修改操作 2.6 set的使用举例 二、map 1.map的介绍 2.map的使用 2.1 map的模板参数说明 2.2 map的构造 2.3 map的迭代器 2.4 map的容量与元…...

【Java笔记】第10章:接口

前言1. 接口的概念与定义2. 接口的声明与语法3. 接口的实现4. 接口的继承5. 接口的默认方法6. 接口的静态方法7. 接口的私有方法8. 接口的作用9. 接口与抽象类的区别10. 接口在Java集合中的应用结语 上期回顾:【Java笔记】第9章&#xff1a;三个修饰符 个人主页&#xff1a;C_G…...

Angular知识概览

Angular 是一个由 Google 维护的开源前端框架&#xff0c;用于构建动态网页应用。以下是对 Angular 主要概念和特性的概览&#xff1a; 1. Angular 的核心概念 - 组件 (Component)&#xff1a;Angular 应用的基本构建块。每个组件包括一个 TypeScript 类&#xff0c;用于处理数…...

经典文献阅读之--Online Monocular Lane Mapping(使用Catmull-Rom样条曲线完成在线单目车道建图)

0. 简介 对于单目摄像头完成SLAM建图这类操作&#xff0c;对于自动驾驶行业非常重要&#xff0c;《Online Monocular Lane Mapping Using Catmull-Rom Spline》介绍了一种仅依靠单个摄像头和里程计生成基于样条的在线单目车道建图方法。我们提出的技术将车道关联过程建模为一个…...

frida timed out

从Android Q(10)开始&#xff0c;Google引入了一种新的机制&#xff0c;加快了app的启动时间 Android USAP 进程启动流程 adb shell su ps -A | grep usaproot 9917 1032 6577052 13676 __skb_wait_for_more_packets 0 S usap64 root 9928 1032 6577052…...

51单片机-独立按键控制灯灯灯

目录 简介: 一. 1个独立按钮控制一个灯例子 二. 在加一个独立按键,控制第二个灯 三. 第一个开关 开灯, 第二个开关关灯 四. 点一下开灯,在点一下关灯 五. 总结 简介: 51 单片机具有强大的控制能力&#xff0c;而独立按键则提供了一种简单的输入方式。 当把独立按键与 …...

【C++】用红黑树封装map、set

用红黑树封装map、set 1. 红黑树1.1 模板参数的控制1.1.1 Value1.1.2 KeyOfValue 1.2 正向迭代器1.2.1 构造函数1.2.2 begin()end()1.2.3 operator()1.2.4 operator--()1.2.5 operator*()1.2.6 operator->()1.2.7 operator()1.2.8 operator!()1.2.9 总代码 1.3 反向迭代器1.…...

【中颖】SH79F9202 串口通信

头文件 uart.h #ifndef UART_H #define UART_H#include "SH79F9202.h" #include "LCD.h" #include "timer2.h" #include "timer5.h" #include "cpu.h" #include "key.h" #include "io.h" #include &qu…...

IDEA创建Maven项目

IDEA创建Maven项目 第一步&#xff1a;创建新项目 或者 第二步&#xff1a;创建maven模块 前提条件&#xff1a; File>>Settings&#xff0c;检查自己的maven是否已经安装配置好 创建maven模块 其中Archetype一般选择如下 点击创建后生成如下 需要在main目录下创…...

[每周一更]-(第100期):介绍 goctl自动生成代码

​ 在自己组件库中&#xff0c;由于部分设计会存在重复引用各个模板的文件&#xff0c;并且基础架构中需要基础模块内容&#xff0c;就想到自动生成代码模板&#xff0c;刚好之前有使用过goctl&#xff0c;以下就简单描述下gozero中goctl场景和逻辑&#xff0c;后续自己借鉴将自…...

碳素钢化学成分分析 螺纹钢材质鉴定 钢材维氏硬度检测

碳素钢的品种主要有圆钢、扁钢、方钢等。经冷、热加工后钢材的表面不得有裂缝、结疤、夹杂、折叠和发纹等缺陷。尺寸和允许公差必须符合相应品种国家标准的要求。 具体分类、按化学成分分类 &#xff1a; 碳素钢按化学成分&#xff08;即以含碳量&#xff09;可分为低碳钢、中…...

C++ list链表的使用和简单模拟实现

目录 前言 1. list的简介 2.list讲解和模拟实现 2.1 默认构造函数和push_back函数 2.2 迭代器实现 2.2.1 非const正向迭代器 2.2.2 const正向迭代器 2.2.3 反向迭代器 2.3 插入删除函数 2.3.1 insert和erase 2.3.2 push_back pop_back push_front pop_front 2.4 构…...

dependencies?devDependencies?peerDependencies

之前使用的npm包中&#xff0c;我用到了sass包。我当时没有在packagejson中添加依赖项&#xff0c;而是另外install的。这就引起了我的一个思考 初步想法&#xff1a; 我的npm包需要使用sass&#xff0c;那么我应该放在dependencies中&#xff0c;当使用的时候会直接下载 问题…...

在LUAT中使用MQTT客户端,游戏脚本,办公脚本自动操作

本文将介绍在LUAT中工程化使用MQTT客户端的方法及注意事项。实验平台为合宙AIR724UG&#xff0c;其固件版本为Luat_V4001_RDA8910_FLOAT_TMP。 面向对象 使用middleclass库为脚本提供基础面向对象支持&#xff0c;将此repo中的middleclass.lua文件添加到项目中即可使用。middl…...

如何解决maven中snapshot相关jar无法拉取问题

Maven中的SNAPSHOT版本是指正在开发中的版本&#xff0c;这些版本可能会频繁地更新。在使用Maven构建项目时&#xff0c;有时会遇到无法拉取SNAPSHOT相关jar的问题。以下是几种常见的解决方案&#xff1a; 1. 检查Maven配置文件&#xff08;settings.xml&#xff09; 确保你的M…...

类似crossover的容器软件有哪些 除了crossover还有什么 Mac虚拟机替代品

CrossOver是Mac用来运行exe文件的一款软件&#xff0c;但是并不是所有的exe文件CrossOver都支持运行。想要在Mac上运行exe文件的方法并不是只有使用CrossOver这一种&#xff0c;那么有没有类似的软件也可以实现exe文件在Mac上运行呢&#xff1f; CrossOver类似软件有哪些 1、Pl…...

以sqlilabs靶场为例,讲解SQL注入攻击原理【54-65关】

【Less-54】 与前面的题目不同是&#xff0c;这里只能提交10次&#xff0c;一旦提交超过十次&#xff0c;数据会重新刷新&#xff0c;所有的步骤需要重来一次。 解题步骤&#xff1a; 根据测试&#xff0c;使用的是单引号闭合。 # 判断字段的数量 ?id1 order by 3 -- aaa# …...

详解 Flink 的时间语义和 watermark

一、Flink 时间语义类型 Event Time&#xff1a;是事件创建的时间。它通常由事件中的时间戳描述&#xff0c;例如采集的日志数据中&#xff0c;每一条日志都会记录自己的生成时间&#xff0c;Flink 通过时间戳分配器访问事件时间戳Ingestion Time &#xff1a;是数据进入 Flink…...

Unreal Engine项目结构与关卡设置详解

引言 Unreal Engine 是一款功能强大的游戏引擎&#xff0c;为开发者提供了丰富的工具来创建和管理游戏项目。本文将详细介绍一个基本的 Unreal Engine 项目结构&#xff0c;并讲解如何在 Unreal 编辑器中进行关卡设置与操作。 Unreal Engine 项目结构 一个基本的 Unreal Eng…...

Access数据中的SQL偏移注入

使用场景&#xff1a; 目标数据表的字段较多&#xff0c;无法一一获取的时候&#xff0c;尝试使用偏移注入的方式实现SQL注入。 原理&#xff1a; 例如&#xff1a;一个表有6个字段&#xff0c;而你想获取的目标表admin的字段不知道&#xff0c;此时可以使用联合查询的方式获…...

Unity 编辑器扩展,获取目录下所有的预制件

先看演示效果 实现方案 1创建几个用于测试的cube 2&#xff0c;创建一个Editor脚本 3&#xff0c;编写脚本内容 附上源码 using UnityEditor; using UnityEngine;public class GetPrefeb : EditorWindow {private string folderPath "Assets/Resources"; // 指定预…...

【Python】解决Python报错:ValueError: not enough values to unpack (expected 2, got 1)

​​​​ 文章目录 引言1. 错误详解2. 常见的出错场景2.1 函数返回值解包2.2 遍历含有不同长度元组的列表 3. 解决方案3.1 检查和调整返回值3.2 安全的解包操作 4. 预防措施4.1 使用异常处理4.2 单元测试 结语 引言 在Python编程中&#xff0c;ValueError 是一个常见的异常类…...

政安晨【零基础玩转各类开源AI项目】解析开源:gradio:改进真实虚拟试穿的扩散模型

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: 零基础玩转各类开源AI项目 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; Gradio 是一个开源 Python 软件包&#xff0c;可以让你…...

深入解读Prometheus Adapter:云原生监控的核心组件

一、引言 Prometheus Adapter的背景与重要性 在现代的云原生架构中&#xff0c;微服务和容器化技术得到了广泛的应用。这些技术带来了系统灵活性和扩展性的提升&#xff0c;但同时也增加了系统监控和管理的复杂度。Prometheus作为一款开源的监控系统&#xff0c;因其强大的指标…...

【计算机视觉】数字图像处理基础:以像素为单位的图像基本运算(点运算、代数运算、逻辑运算、几何运算、插值)

0、前言 在上篇文章中&#xff0c;我们对什么是数字图像、以及数字图像的组成&#xff08;离散的像素点&#xff09;进行了讲解&#x1f517;【计算机视觉】数字图像处理基础知识&#xff1a;模拟和数字图像、采样量化、像素的基本关系、灰度直方图、图像的分类。 我们知道&a…...

Spring Boot整合WebSocket和Redis实现直播间在线人数统计功能

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…...

uniapp自定义的下面导航

uniapp自定义的下面导航 看看效果图片吧 文章目录 uniapp自定义的下面导航 看看效果图片吧 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6aa0e964741d4dd3a58f4e86c4bf3247.png) 前言一、写组件、我这里就没有写组件了直接写了一个页面&#xff1f;总结 前言 在…...

【Python】selenium使用find_element时解决【StaleElementReferenceException】问题的方法

StaleElementReferenceException 是 Selenium WebDriver 中的一种异常&#xff0c;通常在元素与当前页面的状态不同步时抛出&#xff0c;比如页面已经刷新或导航到另一个页面&#xff0c;但是尝试操作的元素引用仍然是旧页面上的元素。 以下是一些解决 StaleElementReferenceE…...

Apache IoTDB 分布式架构三部曲(三)副本与共识算法

IoTDB 首创并应用的共识协议统一框架&#xff0c;为用户提供了灵活选择不同共识算法的可能性。 对于一个分布式集群而言&#xff0c;为了使得海量数据场景下集群能够横向扩展&#xff0c;集群需要按照一定的规则将全部数据分成多个子集存储在不同的节点上&#xff0c;从而能够更…...

数据挖掘--聚类分析:基本概念和方法

数据挖掘--引论 数据挖掘--认识数据 数据挖掘--数据预处理 数据挖掘--数据仓库与联机分析处理 数据挖掘--挖掘频繁模式、关联和相关性&#xff1a;基本概念和方法 数据挖掘--分类 数据挖掘--聚类分析&#xff1a;基本概念和方法 聚类分析 聚类分析是把一个数据对象&…...

网站做显卡评测软件/google推广平台怎么做

Seems like a lot of my posts lately have started with something like "Heres a weird IE bug" or "Heres something odd in .NET" but... 似乎我最近的许多帖子都是以“这是一个奇怪的IE错误”或“这是.NET中的奇怪内容”开头的&#xff0c;但是... He…...

东莞建站方案/seo交互论坛

定义 单例模式&#xff08;Singleton pattern&#xff09;&#xff1a;一个类有且仅有一个实例&#xff0c;并且自行实例化后提供给整个程序使用。 或者可以理解为在整个程序运行期间&#xff0c;保证这个类有且仅一个实例&#xff0c;并对外提供一个能够访问它的全局访问点。 …...

如何用魔方网表做门户网站/写软文一篇多少钱合适

前言 大家好呀&#xff0c;最近很多小伙伴&#xff0c;让我帮忙找找 Java 面试资料。 于是我把以前的面试专栏的文章&#xff0c;整理成PDF啦&#xff01;有MySQL、Redis、消息队列、计算机网络、Zookeeper、Java基础、以及各个大厂的面试真题&#xff0c;大家一起学习&#…...

门户网站模板 免费/专业seo网站优化推广排名教程

好程序员web前端教程分享JavaScript验证API&#xff0c;小编每天会分享一下干货给大家。那么今天说道的就是web前端培训课程中的章节。JavaScript验证API约束验证DOM方法PropertyDescriptioncheckValidity()如果 input 元素中的数据是合法的返回 true&#xff0c;否则返回 fals…...

网站空间最便宜/seo专业培训班

定义&#xff1a; 指多个对象间存在一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布-订阅模式、模型-视图模式&#xff0c;它是对象行为型模式。 优点&#xff1a; 1、降低了目标与观…...

布吉做棋牌网站建设哪家技术好/网络营销企业网站优化

...