c++ 类和对象 —— 中 【复习笔记】
1. 类的默认成员函数
如果一个类什么成员都没有,简称空类。但实际上,任何类在不写成员时,编译器会自动生成6个默认成员函数(用户未显式实现,编译器生成的成员函数)
这6个成员函数可分为三类:
1. 初始化和清理:构造函数完成初始化工作;析构函数完成清理工作
2. 拷贝复制:拷贝构造是用同类对象初始化创建对象;赋值重载是把一个对象赋值给另一个对象
3. 取地址重载:普通对象和const对象取地址,这两个很少自己实现
2. 构造函数
2.1 引入
class Date
{
public:void Init(int year, int month, int day){_year = year;_month = month;_day = day;}private:int _year;int _month;int _day;
};
对于上面的Date类,如果每次创建对象后要设置信息都要调用 Init 的公有方法,会有些麻烦。那能不能在创建对象时就能设置信息呢?构造函数便出现了
构造函数是一个特殊的成员函数,创建类类型对象时由编译器自动调用,在对象整个生命周期内只调用一次
2.2 简介
构造函数虽然叫构造,但它的作用不是开空间创建对象,而是初始化对象
它具有以下特性:
1. 函数名和类名相同
2. 无返回值
3. 构造函数可以重载
4. 对象实例化时编译器自动调用
5. 如果类没有显式定义构造函数,那编译器会自动生成一个无参的默认构造函数;如果类显式定义了,那编译器不再生成
6. 构造函数对于类中内置类型成员不初始化,对于自定义类型成员调用它的默认成员函数(c++11中对于这一点打了补丁:内置类型成员在类中声明时可以给默认值)
7. 无参的构造函数和全缺省的构造函数都称为默认构造函数,并且默认构造函数只有一个(即:无参构造函数、全缺省构造函数、编译器自己默认生成的构造函数都是默认构造函数,但为了避免二义性,通常只定义一种)
class Time
{
public:Time(){cout << "Time()" << endl;_hour = 0;_minute = 0;_second = 0;}private:int _hour;int _minute;int _second;
};class Date
{
public:/*//一旦显式定义任何构造函数,编译器将不再生成Date(int year, int month, int day){_year = year;_month = month;_day = day;}*///无参构造函数//如果使用无参构造函数创建对象,对象后不加括号,否则就变成函数声明Date(){}//带参构造函数Date(int year, int month, int day){_year = year;_month = month;_day = day;}//全缺省构造函数//全缺省和无参可以看为函数重载,但在调用时会出现二义性Date(int year = 2025, int month = 1, int day = 1){_year = year;_month = month;_day = day;}private://内置类型,c++11内置成员变量可以在声明时给默认值int _year;int _month;int _day;//自定义类型Time t;
};int main()
{Date d1;//调用无参构造函数Date d2(2025, 1, 1);//带参构造函数return 0;
}
3. 析构函数
3.1 引入
构造函数是完成初始化对象的工作的,和构造函数相反,析构函数就是完成对象中资源的清理工作(析构函数不完成对对象本身销毁),对象销毁时编译器自动调用
3.2 简介
析构函数具有以下特征:
1. 析构函数名是类名前加字符 ~
2. 无参数无返回类型
3. 一个类只能有一个析构函数,不能重载。如果没显式定义,系统自动生成默认析构函数
4. 对象生命周期结束,编译器自动调用析构函数
5. 对于对象中内置类型,编译器不需要资源清理,最后系统直接将其内存回收即可;对于自定义类型,会调用它的析构函数
6. 如果类没有申请资源,析构函数可以不写,使用生成的默认析构函数即可;但有资源申请时,一定要写,否则会资源泄露
class Time
{
public:~Time(){cout << "~Time()" << endl;}
private:int _hour;int _minute;int _second;
};class Date
{
private://内置类型int _year = 2025;int _month = 1;int _day = 1;//自定义类型Time t;//创建Date对象,销毁时要将Time类对象t销毁,编译器会给Date类生成一个默认析构函数//目的是调用Time类析构函数,确保Date对象销毁时内部每个自定义对象都可以销毁
};
4. 拷贝构造函数
4.1 引入
如果我们要创建一个和已经存在对象一样的新对象,那拷贝构造函数便发挥作用
拷贝构造函数目的是用已经存在的类类型对象创建新对象,编译器自动调用。所以它只有一个形参(对该类类型对象的引用,一般用const修饰)
4.2 简介
它的特征如下:
1. 拷贝构造函数是构造函数的一个重载形式
2. 参数只有一个且必须是该类类型对象的引用(用传值方式直接报错 --- 会引发无穷递归)
3. 如果没有显式定义,编译器自动生成默认拷贝构造函数。(默认拷贝构造函数按内存存储字节序完成拷贝,这种拷贝叫浅拷贝或值拷贝)
4. 对于默认拷贝构造函数,内置类型是浅拷贝,而自定义类型是调用其拷贝构造函数完成拷贝
(调用拷贝构造要传参,传参就要拷贝构造,拷贝构造就要传参,传参就要........,这也是为什么如果参数不是传引用,就会引发无穷递归)
5. 如果类中没涉及资源申请,拷贝构造可写可不写;一旦涉及资源申请,拷贝构造一定要写,否则是浅拷贝。
(比如:我们创建了一个栈对象s1,在它的构造函数中申请10个元素的空间;然后对象s2使用s1拷贝构造,而类中没有显式定义拷贝构造函数,那编译器自动生成默认拷贝构造函数,而这个拷贝构造是值拷贝,就会导致s1和s2指向同一块空间。当销毁s1和s2时,这个空间会释放多次,导致程序崩溃)
6. 拷贝构造的调用场景:
使用已存在对象创建新对象
函数参数类型为类类型对象
函数返回类型为类类型对象
一般对象传参使用引用类型;返回时,如果场景允许引用(如非局部类对象.....)尽量使用引用
#include<iostream>
using namespace std;
class Date
{
public:Date(int year, int month, int day){cout << "Date(int,int,int):" << this << endl;}Date(const Date& d){cout << "Date(const Date& d):" << this << endl;}~Date(){cout << "~Date():" << this << endl;}
private:int _year;int _month;int _day;
};Date Test(Date d)
{//调用拷贝构造函数创建tempDate temp(d);//以值方式返回,调用拷贝构造构造临时变量return temp;
}int main()
{//构造函数创建d1Date d1(2025, 1, 1);//传值方式传递,调用拷贝构造函数Test(d1);return 0;
}
5. 运算符重载
5.1 运算符重载
运算符重载是具有特殊函数名的函数,有函数名字、参数列表和返回值类型,返回值类型和参数列表和普通函数相似
函数名字:operator+要重载运算符符合(比如:operator< )
函数原型:返回值类型 operator操作符(参数列表)
注意事项:
1. 不能连接其他符号创建新操作符:operator@(这是错误的)
2. 重载操作符必须有一个类类型参数(即必须有一个自定义类型),操作符有几个操作数,重载函数就有几个参数
3. 用于内置类型的运算符,含义不能变
4. 作为类成员函数重载,形参看起来比操作数少1(成员函数第一个参数为隐藏的this)
5. 以下5个运算符不能重载:.* :: sizeof ? : .
class Date
{
public:Date(int year, int month, int day){_year = year;_month = month;_day = day;}//左操作数为this指针
bool operator==(const Date& d2)
{return _year == d2._year&& _month == d2._month&& _day == d2._day;
}private:int _year;int _month;int _day;
};//全局operator==
//如果成员变量是私有的,那无法访问;重载成成员函数即可
/*bool operator==(const Date& d1, const Date& d2)
{return d1._year == d2._year&& d1._month == d2._month&& d1._day == d2._day;
}*/void Test()
{Date d1(2025, 1, 1);Date d2(2025, 2, 2);
}
5.2 赋值运算符重载
1. 格式:
参数类型:const T&,传引用提高效率
返回值类型:T& ,返回引用提高效率,便于支持连续赋值
检测是否给自己赋值
返回*this:符合连续赋值含义
2.特征:
1. 赋值运算符只能重载成类的成员函数,不能重载成全局函数
(如果赋值运算符不显示实现,编译器默认生成。那再在类外自己实现一个全局赋值运算符重载,会导致冲突)
2. 用户没显式实现,编译器自动生成一个默认赋值运算符重载(值拷贝的方式)
(内置类型成员变量直接复制,自定义类型要调用对应类的复制运算符重载)
3. 如果类为涉及资源管理,赋值运算符可写可不写;但涉及资源管理必须自己实现
(比如:我们创建了一个栈对象s1,在它的构造函数中申请10个元素的空间;然后对象s2的构造函数也申请10个元素的空间,s2=s1,编译器会将s1的内容原封不动拷贝给s2,这导致s2的原空间丢失,内存泄漏;s1和s2共享一块空间,后续会导致一份空间释放两次)
class Time
{
public:Time(){_hour = 1;_minute = 1;_second = 1;}Time& operator=(const Time& t){if (this != &t){_hour = t._hour;_minute = t._minute;_second = t._second;}return *this;}
private:int _hour;int _minute;int _second;
};class Date
{
public:Date(int year = 2025, int month = 1, int day = 1){_year = year;_month = month;_day = day;}Date(const Date& d){_year = d._year;_month = d._month;_day = d._day;}//赋值重载Date& operator=(const Date& d){if (this != &d){_year = d._year;_month = d._month;_day = d._day;}return *this;}
private://内置类型int _year;int _month;int _day;//自定义类型Time t;
};
5.3 前置++和后置++重载
class Date
{
public:Date(int year = 2025, int month = 1, int day = 1){_year = year;_month = month;_day = day;}//前置++//this指向对象在函数结束后不销毁,用传引用Date& operator++(){_day += 1;return *this;}//后置++//为了让前置++和后置++区别,c++规定:后置++重载时多加一个int类型参数//但调用函数时这个参数不用传递,编译器自动传递//tmp为临时对象,只能传值返回Date operator++(int){Date tmp(*this);_day += 1;return tmp;}private:int _year;int _month;int _day;
};
6. const成员
const修饰的“成员函数”称为const成员函数,实际修饰该成员函数隐藏this指针,表示该成员函数中不能对类的任何成员进行修饰
class Date{public:Date(int year = 2025, int month = 1, int day = 1){_year = year;_month = month;_day = day;}//实际看为void print(const Date*this)void print()const{cout << "Print()const" << endl;cout << _year << endl;cout << _month << endl;cout << _day << endl;}private:int _year;int _month;int _day;};
注意事项:
1. 成员函数后面加const后,普通和const对象都可以调用
2. 不能所有成员函数都加const,比如要修改的对象成员变量的函数不能加
3. 只有成员函数内部不修改成员变量,都应该加const,这样const对象和普通对象都可以调用
7. 取地址和const取地址操作符重载
这两个默认成员函数一般不重新定义,编译器会自己生成
class Date{public:Date* operator&(){return this;}const Date* operator&()const{return this;}private:int _year;int _month;int _day;};
使用编译器默认取地址重载即可,特殊情况如:想让别人获取到指定内容,才重载
相关文章:
c++ 类和对象 —— 中 【复习笔记】
1. 类的默认成员函数 如果一个类什么成员都没有,简称空类。但实际上,任何类在不写成员时,编译器会自动生成6个默认成员函数(用户未显式实现,编译器生成的成员函数) 这6个成员函数可分为三类: …...
「速通AI编程开发」共学(三):提示词(Prompts)配置项
「速通AI编程开发」共学(三) 一、共学课程来源学习初衷 二、介绍不同模式下的提示词(Prompts)支持性提示词 三、提示词学习材料分享 一、共学课程来源 Datawhale通过开源学习模式,助力AI学习者与知识连接,…...
Spring Cloud Stream - 构建高可靠消息驱动与事件溯源架构
一、引言 在分布式系统中,传统的 REST 调用模式往往导致耦合,难以满足高并发和异步解耦的需求。消息驱动架构(EDA, Event-Driven Architecture)通过异步通信、事件溯源等模式,提高了系统的扩展性与可观测性。 作为 S…...
电脑如何录屏
以下是电脑录屏的常用方法总结,涵盖系统自带工具、第三方软件及进阶功能,结合不同场景需求推荐最佳方案: 一、系统自带工具 Xbox Game Bar(Windows 10/11) 操作步骤:按 WinG 打开游戏栏 → 点击录制按钮&am…...
【微知】plantuml在泳道图中如何将多个泳道框起来分组并且设置颜色?(box “浏览器“ #LightGreen endbox)
泳道分组并且着色 分组用 box和endbox ,颜色用#xxx,标注用"xxx" box "浏览器" #LightGreen participant "浏览器1" as Browser participant "浏览器2" as Browser2 endboxparticipant "服务端" as …...
c++ 中的可变参数模板与折叠表达式
c 11 引入了可变参数模板,c 17 引入了折叠表达式,比 c 语言的可变参数更加简洁灵活。这篇博客总结了一些例子。 …(省略号)用于可变参数(Variadic Arguments),它可以放在模板参数 或 函数参数的…...
websocket学习手册及python实现简单的聊天室
概述 WebSocket 是一种网络通信协议,允许在单个 TCP 连接上进行全双工通信。它最核心的优势就在于实现了持久连接,实现了实时的数据传输。HTTP 协议有一个很大的缺点,通信只能由客户端发起,服务器返回响应后连接就会关闭…...
论文阅读:2023-arxiv Can AI-Generated Text be Reliably Detected?
总目录 大模型安全相关研究:https://blog.csdn.net/WhiffeYF/article/details/142132328 文章目录 Abstract(摘要)1 Introduction(引言)Conclusion(结论) Can AI-Generated Text be Reliably D…...
Mock接口编写教程-axios-mock-adapter(React)
Mock模拟接口编写教程 直接在前端实现接口模拟 1.第一步 设置模拟接口 // mock.ts import axios from axios import MockAdapter from axios-mock-adapter// 创建一个模拟适配器 const mock new MockAdapter(axios)// 设置模拟接口 export const setupMock () > {mock.…...
react(一):特点-基本使用-JSX语法
初识React React是一个用于构建用户界面的 JavaScript 库,由 Facebook 开发和维护。 官网文档:React 官方中文文档 特点 1.声明式编程 2.组件化开发 3.多平台适配 开发依赖 开发React必须依赖三个库: 1.react:包含react所必…...
golang函数与方法的区别
1.调用方式的区别 函数的调用方式:函数名(参数...) 方法的调用方式: 变量.方法名(参数...) 2.函数的使用 package mainimport "fmt" //函数参数为值类型,调用的时候只能传递值类型数据&#…...
解决 openeuler 系统 docker 下载慢,docker 镜像加速
一、步骤说明 1. 编辑 Docker 配置文件 Docker 的镜像源配置文件路径为 /etc/docker/daemon.json。如果该文件不存在,则需要先创建目录和文件。 # 创建目录(如果不存在) sudo mkdir -p /etc/docker# 编辑配置文件(使用 nano 或…...
Android ARouter的详细使用指南
Android ARouter的详细使用指南。我需要先确定用户的基础,可能他们已经有Android开发经验,但对ARouter不太熟悉。首先,我应该介绍ARouter是什么,解决什么问题,比如模块化中的页面跳转问题。然后,需要分步骤…...
PosterRender 实现微信下程序 分享商品生成海报
PosterRender 是什么 PosterRender 是一种专注于生成高质量海报图像的技术或工具,常用于生成静态图片,特别是适合用于营销、宣传和展示的图形设计。它通常用于在服务端或客户端渲染复杂的图像,包括文字、图形、图标、背景等,生成…...
电机控制常见面试问题(十五)
文章目录 一、电机气隙二、电气时间三.电机三环控制详解四.驱动板跳线意义五.电机开环自检 一、电机气隙 电机气隙是定子和转子之间的空隙,防止钉子转子运转时物理接触,此外,气隙是磁路的重要环节,磁场需通过气隙传递能量&#x…...
基于云漂移优化(Cloud Drift Optimization,CDO)算法的多个无人机协同路径规划(可以自定义无人机数量及起始点),MATLAB代码
一、云漂移优化算法 云漂移优化(Cloud Drift Optimization,CDO)算法是2025年提出的一种受自然现象启发的元启发式算法,它模拟云在大气中漂移的动态行为来解决复杂的优化问题。云在大气中受到各种大气力的影响,其粒子的…...
【第9章】亿级电商平台订单系统-整体技术架构设计
1-1 本章导学 课程主题:系统蓝图描绘与整体技术架构设计核心学习内容: ▶️ 订单系统的整体技术架构设计 ▶️ 架构设计核心方法论与实践应用本章核心内容架构 1. 技术预研 架构设计的基础支撑环节关键技术可行性分析与选型依据2. 整体技术架构设计方法与步骤 结构化设计方法…...
harmonyOS NEXT开发与前端开发深度对比分析
文章目录 1. 技术体系概览1.1 技术栈对比1.2 生态对比 2. 开发范式比较2.1 鸿蒙开发范式2.2 前端开发范式 3. 框架特性对比3.1 鸿蒙 Next 框架特性3.2 前端框架特性 4. 性能优化对比4.1 鸿蒙性能优化4.2 前端性能优化 5. 开发工具对比5.1 鸿蒙开发工具5.2 前端开发工具 6. 学习…...
详细介绍GetDlgItem()
书籍:《Visual C 2017从入门到精通》的2.3.8 Win32控件编程 环境:visual studio 2022 内容:【例2.31】在模态对话框上可视化创建树形控件 说明:以下内容大部分来自腾讯元宝。 GetDlgItem() 是 Windows API 中用于获取对话框或父…...
MCU的应用场景:从智能家居到工业控制
MCU的应用场景非常广泛,主要包括以下几个方面: 1. 智能家居 智能照明:通过MCU控制LED灯的亮度和颜色。 智能安防:在安防系统中,MCU用于控制传感器和报警器。 2. 工业控制 PLC(可编程逻辑控制器&…...
docker的使用
时间:2025.3.17 一、当我们想要运行一个容器时,不是在containers处,而是需要在images处找对应容器的镜像 操作步骤: 1.找容器镜像 2.找到容器镜像,通过pull下载到当前主机中 3.下载成功后进行运行 4.运行时的容器镜像…...
Redis hyperloglog学习
背景知识 【伯努利试验】: 【伯努利试验】是一个概率论中的概念,指在相同的条件下重复进行n次独立的试验,每次试验只有两种可能的结果,且这两种结果发生的概率是固定的 抛硬币作为伯努利试验:在抛硬币时,我…...
鸿蒙开发:什么是ArkTs?
前言 本文基于Api13。 一句话解读:ArkTs(方舟编程语言)是目前HarmonyOs应用开发的主力语言。 用官方的话解读,它是一种为构建高性能应用而设计的编程语言;看到以Ts结尾,想必大家应该很容易想到TypeScript&a…...
ArcGIS Pro中加载在线地图的详细指南
在现代制图领域,ArcGIS Pro已成为专业人士的重要工具。它不仅功能强大,而且操作简便,为用户提供了丰富的地图数据资源和灵活的地图加载方式。其中,加载在线地图是ArcGIS Pro的一大特色功能,能够帮助用户快速获取全球范…...
《C++ Primer》学习笔记(四)
第四部分:高级主题 1.tuple 是类似pair的模板。每个pair 的成员类型都不相同,但每个 pair 都恰好有两个成员。每个确定的tuple 类型的成员数目是固定的,但一个 tuple 可以有任意数量的成员。tuple支持的操作如下图: 只有两个 tup…...
CVPR2025自动驾驶端到端前沿论文汇总
自动驾驶 文章目录 自动驾驶前言自动驾驶的轨迹预测论文端到端自动驾驶论文 前言 汇总CVPR2025自动驾驶前沿论文 自动驾驶的轨迹预测论文 Leveraging SD Map to Augment HD Map-based Trajectory PredictionModeSeq: Taming Sparse Multimodal Motion Prediction with Seque…...
使用 jQuery 实现子窗口获取父窗口的值,或者父窗口获取子窗口的值时
HTML 父子窗口通信指南 一、基础概念 在Web开发中,父子窗口通信是一个常见的需求。这通常发生在以下场景: 主页面(父窗口)打开新窗口(子窗口)弹出窗口需要与主页面交互多窗口之间需要数据传递 二、jQue…...
AndroidStudio下载安装,环境部署以及常见问题解决教程(亲测)
AndroidStudio下载安装,环境部署以及常见问题解决!!! 文章目录 前言 一、Android Studio 下载与安装 1.1 系统要求 1.2 下载 Android Studio 1.3 安装 Android Studio Windows 系统 1.4 初始配置 二、环境部署 2.1 安装 …...
ruoyi-vue部署2
3.Node.js 3.1.什么是Node.js 在 Node.js 之前,JavaScript 只能运行在浏览器中,作为网页脚本使用,为网页添加一些特效,或者和服务器进行通信。有了 Node.js 以后,JavaScript 就可以脱离浏览器,像其它编程…...
Flutter项目升级Xcode 16.2之后编译问题
最近好久没升级Xcode了,升级了一下最新的16.2之后。发现Flutter项目在iOS设备上运行不起来了。报错: 查了许多网友也遇到了,其中一个解决方案:https://stackoverflow.com/questions/79118572/xcode-16-and-ios-18-project-not-com…...
Mermaid 子图 + 拖拽缩放:让流程图支持无限细节展示
在技术文档、项目管理和可视化分析中,流程图是传递复杂逻辑的核心工具。传统流程图往往静态且难以适应细节展示,而 Mermaid 与 svg-pan-zoom 的结合,则为这一痛点提供了完美解决方案。本文将深入解析如何通过 Mermaid 的子图(subg…...
前沿科技一览未来发展趋势
生物技术能帮环境。比如用它处理污染物。科学家发现一些细菌能吃掉油污。这些细菌能被用来清理漏油事故。比如1989年埃克森瓦尔迪兹号漏油事件中人们就用类似方法减少污染。 还有些植物能吸收土壤里的重金属。种植这种植物能让受污染的土地变干净。这种方法在矿区周围特别有用…...
Linux---sqlite3数据库
一、数据库分类 1. 按数据关系分类 类型特点代表产品关系型数据库- 使用 SQL(结构化查询语言)<br>- 数据以行列形式存储,支持事务和复杂查询MySQL、Oracle、SQLite非关系型数据库- 无固定表结构(如键值对、文档、图&#…...
侯捷 C++ 课程学习笔记:进阶语法之lambda表达式(二)
侯捷 C 课程学习笔记:进阶语法之lambda表达式(二) 一、捕获范围界定 1. 局部变量与函数参数 非静态局部变量:Lambda 所在作用域内定义的局部变量(如函数内部的 int x)会被完整复制其当前值。捕获后外部变…...
python爬虫Scrapy(6)之增量式
增量式 爬虫应用场景分类 通用爬虫聚焦爬虫功能爬虫分布式爬虫增量式: 用来监测网站数据更新的情况(爬取网站最新更新出来的数据)。只是一种程序设计的思路,使用什么技术都是可以实现的。核心: 去重。 使用一个记录表来…...
oracle删除表中重复数据
需求: 删除wfd_procs_nodes_rwk表中,huser_id、dnode_id、rwk_name字段值相同的记录,如果有多条,只保留一条。 SQL: DELETE FROM wfd_procs_nodes_rwk t WHERE t.rowid > (SELECT MIN(t1.rowid)FROM wfd_procs_n…...
动作捕捉手套如何让虚拟现实人机交互 “触手可及”?
在虚拟与现实逐渐交融的当下,动作捕捉技术正以前所未有的速度革新着多个领域。 动作捕捉技术,简称“动捕”,已经从早期的影视特效制作,逐步拓展到游戏开发、虚拟现实、机器人控制等多个领域。 而mHandPrO数据手套作为这一领域的…...
【大模型基础_毛玉仁】2.3 基于 Encoder-only 架构的大语言模型
更多内容:XiaoJ的知识星球 目录 2.3 基于Encoder-only 架构的大语言模型2.3.1 Encoder-only 架构2.3.2 BERT 语言模型1)BERT 模型结构2)BERT 预训练方式3)BERT 下游任务 2.3.3 BERT 衍生语言模型1)RoBERTa 语言模型2&a…...
C# ManualResetEvent的高级用法
一、ManualResetEvent 的核心作用 ManualResetEvent 是 C# 中用于 线程同步 的类(位于 System.Threading 命名空间),通过信号机制控制线程的等待与执行。其核心功能包括: 阻塞线程:调用 WaitOne() 的线程会等…...
Language Models are Few-Shot Learners,GPT-3详细讲解
GPT的训练范式:预训练Fine-Tuning GPT2的训练范式:预训练Prompt predict (zero-shot learning) GPT3的训练范式:预训练Prompt predict (few-shot learning) GPT2的性能太差,新意高&…...
js 给元素添加点击事件的方法
在 JavaScript 里,为元素添加点击事件有多种方法,下面为你介绍三种常见的方式。 1. 使用内联事件处理程序 你可以在 HTML 标签里直接使用 onclick 属性添加点击事件。示例如下: <!DOCTYPE html> <html lang"en"><…...
Linux环境使用jmeter做性能测试
一、安装JDK,版本jdk1.8 1、下载压缩包到/jdk目录下解压 cd /jdk tar -zxvf jdk-8u241-linux-64.tar.gz 2、配置环境变量 在profile文件中末尾新增信息如下所示 vim /etc/profile export JAVA_HOME/usr/local/java/jdk/jdk1.8.0_221 export PATH$PATH:$JAVA_HOM…...
联想台式电脑启动项没有U盘
开机按F12,进入启动设备菜单,发现这里没有识别到插在主机的U盘? 解决方法 1、选上图的Enter Setup或者开机按F2,进入BIOS设置 选择Startup -> Primary Boot Sequence 2、选中“Excludeed from boot order”中U盘所在的一行 …...
单片机开发资源分析的实战——以STM32F103C8T6为例子的单片机资源分析
目录 第一点:为什么叫STM32F103C8T6 从资源手册拿到我们的对STM32F103C8T6的资源描述 第二件事情,关心我们的GPIO引脚输出 第三件事情:去找对应外设的说明部分 前言 本文章隶属于项目: Charliechen114514/BetterATK: This is…...
Error response from daemon: Get “https://registry-1.docker.io/v2/“: net/http: request canceled while
英俊潇洒很有才,美丽端庄又大方的人已经点赞收藏+关注了 文章目录 1.ubuntu解决方案2.Windows的解决办法(有威劈恩好搞)3.其他报错json格式错误下载的镜像有问题 最后 1.ubuntu解决方案 报错如图:timeout Error response from da…...
yolo模型学习笔记——1——物体检测评估指标
1.置信度 表示模型预测的边界框中存在目标物体的概率以及反应预测框和真实框的定位质量 2.阈值 (1)定义 决定一个预测框是否被视为为正类的关键参数,通过调整不同的阈值,获得不同的精度和召回率。yolo模型会为每个预测框生成一个置信度分数,…...
Elasticsearch 滚动索引(Rollover Index)详解
文章目录 1、滚动索引的作用2、滚动索引的用法2.1 核心概念2.2 实现步骤 3、适用场景4、与其他技术的结合使用5、案例:日志数据的滚动索引5.1 场景描述5.2 实现步骤 6、示例:结合索引生命周期管理(ILM)6.1 场景描述6.2 实现步骤 7…...
保持docker内容器一直运行
首先:确保Docker服务配置为开机自启,这样当虚拟机启动时,Docker也会启动,并按照设定的重启策略自动启动相关容器。 sudo systemctl enable docker 创建容器时: 当你使用docker run命令启动容器时,可以添…...
ChatBI 的技术演进与实践挑战:衡石科技如何通过 DeepSeek 实现商业落地
随着人工智能技术的快速发展,ChatBI(基于自然语言交互的商业智能)逐渐成为企业数据分析领域的热门话题。作为 BI(商业智能)领域的新形态,ChatBI 通过自然语言处理(NLP)技术ÿ…...
python-leetcode 55.子集
题目: 给定一个数组nums,数组中的元素互不相同,返回该数组所有可能子集(幂集) 解集不能包含重复的子集,可以按任意顺序返回解集 方法一:迭代法实现子集枚举 记原序列中元素的总数为 n,原序列…...