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

C++11QT复习(二)

文章目录

    • Day4-4 New 与 delete 表达式(2025.03.20)
      • 1. `new` 表达式的三个步骤
      • 2. `delete` 表达式的两个步骤
      • 3. `new[]` 与 `delete[]`
    • Day5 类的定义和关键字再探(2025.03.24)
      • 1. C++ 关键字 `const`、`static`、`extern`
      • 2. 类的定义:Circle 和 Rect
      • 3. 完整代码
    • Day5-1 运算符重载(2025.03.24)
      • 1. 复数类 `Complex` 及其运算符重载
      • 2. 运算符重载的几种方式
      • 3. 关键区别
      • 4.完整代码

Day4-4 New 与 delete 表达式(2025.03.20)

在 C++ 中,newdelete 是用于动态内存管理的关键字。它们分别用于在堆上分配和释放对象或数组。

1. new 表达式的三个步骤

  1. 调用 operator new 标准库函数

    • operator new 负责在堆上申请一块原始的、未初始化的内存空间,以便存储对象。
    • 如果申请失败,会抛出 std::bad_alloc 异常(除非使用 nothrow 版本的 new)。
  2. 调用构造函数

    • 在申请到的内存空间上调用构造函数,初始化对象的数据成员。
  3. 返回指针

    • 返回指向新分配对象的指针,以供程序使用。

示例代码:

class A {
public:A() { cout << "A() constructor" << endl; }~A() { cout << "~A() destructor" << endl; }
};int main() {A* p = new A;  // 调用 operator new 申请内存 -> 调用构造函数 -> 返回指针delete p;      // 调用析构函数 -> 调用 operator delete 释放内存return 0;
}

2. delete 表达式的两个步骤

  1. 调用析构函数

    • 在释放对象所占的内存前,先执行析构函数,以回收对象的数据成员所占用的资源(如动态分配的内存、文件句柄等)。
  2. 调用 operator delete 库函数

    • 释放对象本身所占用的内存空间,使其可被重新分配。

示例代码:

A* p = new A;
delete p; // 先调用析构函数,再释放内存

3. new[]delete[]

  • new[] 用于动态分配对象数组,必须使用 delete[] 释放。
  • delete 只能释放单个对象,而 delete[] 释放的是整个数组。
A* arr = new A[5];  // 申请 5 个对象的数组delete[] arr;       // 释放数组

如果用 delete 释放 new[] 申请的数组,可能会导致未完全析构的对象泄漏。


Day5 类的定义和关键字再探(2025.03.24)

1. C++ 关键字 conststaticextern

const int global_a = 10;  // 只读常量
static int s_b = 10;      // 静态全局变量(仅限当前文件可见)
extern int SIZE = 10;     // 外部变量(多个文件可共享)
  • const:用于定义只读变量,防止意外修改。
  • static:修饰局部变量时,延长变量生命周期,修饰全局变量时,限制其作用域。
  • extern:用于声明外部变量,使其可以在多个文件中访问。

示例:

void test() {static int fun_c = 0;  // 仅初始化一次,生命周期贯穿整个程序fun_c++;cout << "fun_c = " << fun_c << endl;
}

2. 类的定义:Circle 和 Rect

class Circle {
public:Circle(double r = 0) : _r(r) {cout << "Circle()" << endl;}~Circle() {cout << "~Circle()" << endl;}double getArea() const {return M_PI * _r * _r;}private:double _r;
};

要点:

  • 构造函数(Constructor): 负责初始化对象,可以带默认参数。
  • 析构函数(Destructor): 负责清理资源,名称前带 ~
  • 成员函数(Member Function): const 关键字保证不会修改对象数据。

3. 完整代码

#define _USE_MATH_DEFINES
#include <iostream>
#include <cmath>using namespace std;
//关键字
//const
const int global_a = 10;
//static
static int s_b = 10;
//extern
extern int SIZE  = 10;
//三者的用途:const 修饰常量,static 修饰全局变量,extern 修饰外部变量void test()
{int local_v = 0;static int fun_c;//静态局部变量 可以延长变量的生命周期fun_c++;cout << "local_v = " << " " << local_v << " ," << "fun_c = " << " " << fun_c << endl;
}//定义一个圆
class Circle
{
public:Circle(double r = 0): _r(r){cout << "Circle(double r = 0)" << endl;}Circle(double r,char* name): _r(0), _name(new char[strlen(name) + 1]){strcpy_s(_name, strlen(name) + 1,name);cout << "Circle(double r = 0)" << endl;}~Circle(){cout << "~Circle()" << endl;}double getRadius() const{return _r;}//setRadiusvoid setRadius(double r){_r = r;}double getArea() const{return M_PI * _r * _r;}private:double _r;char* _name;
};//定义一个矩形
class Rect
{
public:Rect(double l = 0, double w = 0): _l(l), _w(w){cout << "Rect(double l = 0, double w = 0)" << endl;}~Rect(){cout << "~Rect()" << endl;}private:double _l;double _w;
};void testCircle()
{Circle c1(10);cout << "c1.getRadius() = " << c1.getRadius() << endl;cout << "c1.getArea() = " << c1.getArea() << endl;cout << endl << endl;Circle c2;c2.setRadius(20);cout << "c2.getRadius() = " << c2.getRadius() << endl;cout << "c2.getArea() = " << c2.getArea() << endl;
}int main()
{test();test();test();cout << endl << endl;testCircle();return 0;
}

Day5-1 运算符重载(2025.03.24)

1. 复数类 Complex 及其运算符重载

class Complex {friend Complex operator*(const Complex& lhs, const Complex& rhs);
public:Complex(double r = 0, double i = 0) : _real(r), _imag(i) {}Complex operator-(const Complex& rhs) const {return Complex(_real - rhs._real, _imag - rhs._imag);}Complex& operator++() {  // 前置++++_real;++_imag;return *this;}Complex operator++(int) {  // 后置++Complex tmp(*this);_real++;_imag++;return tmp;}Complex& operator+=(const Complex& rhs) {_real += rhs._real;_imag += rhs._imag;return *this;}void display() const {cout << _real << " + " << _imag << "i" << endl;}private:double _real;double _imag;
};

2. 运算符重载的几种方式

  • 成员函数重载(适用于 +=++-):

    Complex operator-(const Complex& rhs) const;
    Complex& operator++();
    Complex operator++(int);
    Complex& operator+=(const Complex& rhs);
    
  • 友元函数重载(适用于 +*):

    friend Complex operator+(const Complex& lhs, const Complex& rhs);
    friend Complex operator*(const Complex& lhs, const Complex& rhs);
    

3. 关键区别

运算符适用方式说明
+普通函数需要访问两个对象的数据,可用友元函数
-成员函数只需要访问当前对象数据
++成员函数影响当前对象,前置++返回引用,后置++返回值
*友元函数需要访问两个对象的数据

示例代码:

Complex c1(1, 2), c2(3, 4);
Complex c3 = c1 + c2;
c3.display();

总结:

  • 友元函数适用于二元运算(如 +*)。
  • 成员函数适用于一元运算(如 ++)和复合赋值运算(如 +=)。

4.完整代码

#include <iostream>
#include <limits.h>using namespace std;//复数
class Complex
{friend Complex operator*(const Complex& lhs, const Complex& rhs);//Complex operator/(const Complex& rhs) const;
public:Complex(double r = 0, double i = 0): _real(r), _imag(i) {cout << "Complex(double r = 0, double i = 0)" << endl;}~Complex(){cout << "~Complex()" << endl;}double getReal() const{return _real;}double getImag() const{return _imag;}//运算符重载之成员函数Complex operator-(const Complex& rhs) const{return Complex(_real - rhs._real, _imag - rhs._imag);}//自增运算符重载Complex& operator++() //前置++{++_real;++_imag;return *this;}//后置自增运算符重载Complex operator++(int) //后置++{Complex tmp(*this);_real++;_imag++;return tmp;//返回类型是一个临时对象,所以不适用引用类型}//前置++和后置++的区别?//解答:前置++返回是对象的引用,是左值可以取地址//后置++返回的是局部对象,是右值不能取地址//+=运算符重载//复合赋值运算符重载,推荐以成员函数的形式重载Complex& operator+=(const Complex& rhs){_real += rhs._real;_imag += rhs._imag;return *this;}void display() const{if (_imag > 0){cout << _real << " + " << _imag << "i" << endl;}else if (_imag == 0){cout << _real << endl;}else{cout << _real << " - " << -_imag << "i" << endl;}}
private:double _real;double _imag;
};	//“operator + ”必须至少有一个类类型的形参
//int operator+(int lhs, int rhs)
//{
//	//return _real + rhs;
//}//运算符重载之普通函数
Complex operator+(const Complex& lhs, const Complex& rhs)
{return Complex(lhs.getReal() + rhs.getReal(), lhs.getImag() + rhs.getImag());
}//运算符重载之友元函数(推荐使用)
Complex operator*(const Complex& lhs, const Complex& rhs)
{return Complex(lhs._real * rhs._real - lhs._imag * rhs._real,lhs._real * rhs._real + lhs._real * rhs._real);
}void test()
{Complex c1(1, 2);cout << "c1 = ";c1.display();cout << endl << endl;Complex c2(3, 4);cout << "c2 = ";	c2.display();cout << endl << endl;Complex c3 = c1 + c2;cout << "c3 = c1 + c2 = ";c3.display();
}void test2()
{Complex c1(1, 2);cout << "c1 = ";c1.display();cout << endl << endl;Complex c2(3, 4);cout << "c2 = ";	c2.display();cout << endl << endl;Complex c3 = c1 - c2;cout << "c3 = c1 - c2 = ";c3.display();}void test3()
{Complex c1(1, 2);cout << "c1 = ";c1.display();cout << endl << endl;Complex c2(3, 4);cout << "c2 = ";c2.display();cout << endl << endl;Complex c3 = c1 * c2;cout << "c3 = c1 * c2 = ";c3.display();c3 += c1;cout << "c3 += c1 = ";c3.display();}void test4()
{Complex c3(4, 6);cout << "c3 = ";c3.display();cout << endl << endl;++c3;cout << "++c3 = ";c3.display();cout << endl << endl;c3++;cout << "c3++ = ";c3.display();Complex c4(4, 6);cout << "c4 = ";c4.display();c4++;cout << "c4++ = ";c4.display();cout << "前置++返回是对象的引用,是左值可以取地址,后置++返回的是局部对象,是右值不能取地址";
}int main(int argc, char*  argv[])
{//test();//test2();//test3();test4();return 0;
}

相关文章:

C++11QT复习(二)

文章目录 Day4-4 New 与 delete 表达式&#xff08;2025.03.20&#xff09;1. new 表达式的三个步骤2. delete 表达式的两个步骤3. new[] 与 delete[] Day5 类的定义和关键字再探&#xff08;2025.03.24&#xff09;1. C 关键字 const、static、extern2. 类的定义&#xff1a;C…...

Pytorch学习笔记(十)Learning PyTorch - Learning PyTorch with Examples

这篇博客瞄准的是 pytorch 官方教程中 Learning PyTorch 章节的 Learning PyTorch with Examples 部分。 官网链接&#xff1a;https://pytorch.org/tutorials/beginner/pytorch_with_examples.html 完整网盘链接: https://pan.baidu.com/s/1L9PVZ-KRDGVER-AJnXOvlQ?pwdaa2m…...

如何使用DeepSeek编写测试用例?

一、DeepSeek在测试用例设计中的定位 DeepSeek作为AI工具,并非直接替代测试设计,而是通过以下方式提升效率: 快速生成基础用例框架(等价类、边界值等) 智能补充易遗漏场景(如特殊字符、异常流) 自动化脚本片段生成(Python/pytest/JUnit等) 测试数据构造建议(符合业务…...

sql server如何提高索引命中率

#新星杯14天创作挑战营第9期# 前言 近期发现以前开发的系统运行缓慢&#xff0c;经排查&#xff0c;发现有很大的优化空间。数据库版本使用的是sql server&#xff0c;主要有以下一些问题点&#xff1a;数据表无索引、一些不规范的写法&#xff08;例如in、大表关联&#xff0…...

FALL靶机

下载靶机&#xff0c;可以看到靶机地址 在kali上扫描靶机的端口和目录文件 访问&#xff1a;http://192.168.247.146/test.php&#xff0c;他提示我们参数缺失 我们爆破一下他的参数 使用kali自带的fuzz FUZZ就是插入参数的位置 -w 指定字典文件 wfuzz -u "http://192.…...

北斗导航 | 改进最小二乘残差法的接收机自主完好性监测算法原理,公式,应用,研究综述,matlab代码

改进最小二乘残差法的接收机自主完好性监测算法研究 摘要 本文针对传统最小二乘残差RAIM算法在复杂环境下检测性能不足的问题,提出了一种基于加权抗差估计的改进算法。通过引入IGGⅢ权函数构建抗差最小二乘模型,结合滑动窗口方差估计和自适应阈值调整机制,显著提升了算法对…...

WPF 浅述ToolTipService.ShowOnDisabled

WPF 浅述ToolTipService.ShowOnDisabled ToolTipService.ShowOnDisabled 属性可以让工具提示在控件禁用状态下仍然显示。这是一个非常方便且简洁的方式。 使用 ToolTipService.ShowOnDisabled&#xff0c;你可以通过设置 ToolTipService.ShowOnDisabled 属性来确保即使在控件禁…...

嵌入式硬件工程师从小白到入门-PCB绘制(二)

PCB绘制从小白到入门&#xff1a;知识点速通与面试指南 一、PCB设计核心流程 需求分析 明确电路功能&#xff08;如电源、信号处理、通信&#xff09;。确定关键参数&#xff08;电压、电流、频率、接口类型&#xff09;。 原理图设计 元器件选型&#xff1a;匹配封装、电压、…...

05 Python 元组:不可变序列的解析和应用

文章目录 前言元组定义元组的运算索引操作切片操作连接和重复运算循环遍历元组中的元素成员运算内置函数运算 打包和解包操作交换变量的值 前言 在 Python 编程领域&#xff0c;元组&#xff08;Tuple&#xff09;是一类极为重要的数据结构。它属于不可变的序列类型&#xff0…...

MATLAB 批量移动 TIF 文件至分类文件夹

文章目录 前言一、步骤二、代码 前言 本代码用于从指定的源文件夹 (sourceFolder) 中筛选所有 .tif 文件&#xff0c;并根据文件名的特定关键词&#xff08;Daynight 和 FDI&#xff09;将其分类移动到相应的目标文件夹 (targetDaynightFolder 和 targetFDIFolder)。 一、步骤…...

Milvus×最新版DeepSeek v3:对标Claude,本地数据五分钟写网站

前言 就在昨晚&#xff0c;DeepSeek v3推出了新版本V3-0324&#xff0c;再次一夜爆火。 虽然官方表示“这只是一次小升级”“API接口和使用方式不变”&#xff0c;但经过Zilliz的第一时间实测&#xff0c;我们发现无论是逻辑能力&#xff0c;还是编程能力&#xff0c;相较原本的…...

抽象代数:群论

系列笔记为本学期上抽象代数课整理的&#xff0c;持续更新。 群的相关定义 群的定义 群是一个带有满足结合律、单位元、逆元的二元运算的集合&#xff0c;记作 ( G , ⋅ ) \left({G, \cdot}\right) (G,⋅)。若群运算满足结合律&#xff0c;则该集合构成半群。如果该半群中含…...

基于 mxgraph 实现流程图

mxgraph 可以实现复杂的流程图绘制。mxGraph里的Graph指的是图论(Graph Theory)里的图而不是柱状图、饼图和甘特图等图(chart)&#xff0c;因此想找这些图的读者可以结束阅读了。 作为图论的图&#xff0c;它包含点和边&#xff0c;如下图所示。 交通图 横道图 架构图 mxGrap…...

Stereolabs ZED Box Mini:机器人与自动化领域的人工智能视觉新选择

在人工智能视觉技术快速发展的今天&#xff0c;其应用场景正在持续拓宽&#xff0c;从智能安防到工业自动化&#xff0c;从机器人技术到智能交通&#xff0c;各领域都在积极探索如何利用这一先进技术。而 Stereolabs 推出的ZED Box Mini&#xff0c;正是一款专为满足这些多样化…...

音视频 二 看书的笔记 MediaPlayer

此类是用于播放声音和视频的主要 API 对方不想多说向你丢了一个链接 MediaPlayer Idle 空闲状态Initialized 初始化状态 调用 setDataSource() 时会进入此状态 setDataSource必须在Idle 状态下调用&#xff0c;否则就抛出异常了了了了了。Prepared 准备状态 回调监听setOnPrep…...

可以把后端的api理解为一个目录地址,但并不准确

将后端的 API 理解为一个“目录地址”是可以的&#xff0c;但并不完全准确。让我们更详细地解释一下。 目录 1、生动形象了解api 2、后端 API 的作用 3、可以将 API 理解为“目录地址”的原因 &#xff08;1&#xff09;URL 路径 &#xff08;2&#xff09;层次结构 4、…...

vscode连接服务器失败问题解决

文章目录 问题描述原因分析解决方法彻底删除VS Code重新安装较老的版本 问题描述 vscode链接服务器时提示了下面问题&#xff1a; 原因分析 这是说明VScode版本太高了。 https://code.visualstudio.com/docs/remote/faq#_can-i-run-vs-code-server-on-older-linux-distribu…...

Qt 高效读写JSON文件,玩转QJsonDocument与QJsonObject

一、前言 JSON作为轻量级的数据交换格式&#xff0c;已成为开发者必备技能。Qt框架为JSON处理提供了完整的解决方案&#xff0c;通过QJsonDocument、QJsonObject和QJsonArray三大核心类&#xff0c;轻松实现数据的序列化与反序列化。 JSON vs INI 特性JSONINI数据结构支持嵌…...

开源视频剪辑工具,无损编辑更高效

LosslessCut 是一款基于 FFmpeg 开发的跨平台开源视频剪辑工具&#xff0c;致力于无损处理音视频文件。它无需重新编码即可完成剪切、合并、轨道编辑等操作&#xff0c;极大地保留了原始文件的质量&#xff0c;特别适合处理大体积视频&#xff0c;如无人机拍摄素材或长时录制内…...

Git 之配置ssh

1、打开 Git Bash 终端 2、设置用户名 git config --global user.name tom3、生成公钥 ssh-keygen -t rsa4、查看公钥 cat ~/.ssh/id_rsa.pub5、将查看到的公钥添加到不同Git平台 6、验证ssh远程连接git仓库 ssh -T gitgitee.com ssh -T gitcodeup.aliyun.com...

(UI自动化测试web端)第二篇:元素定位的方法_css定位之ID选择器

看代码里的【find_element_by_css_selector( )】( )里的表达式怎么写&#xff1f; 文章介绍了第一种写法id选择器&#xff0c;其实XPath元素定位要比CSS好用&#xff0c;原因是CSS无法使用下标&#xff08;工作当中也是常用的xpath&#xff09;&#xff0c;但CSS定位速度比XPat…...

Mysql---锁篇

1&#xff1a;MySQL 有哪些锁&#xff1f; 全局锁 flush tables with read lock 整个数据库就处于只读状态了 unlock tables 释放全局锁 全局锁主要应用于做全库逻辑备份&#xff0c;这样在备份数据库期间&#xff0c;不会因为数据或表结构的更新&#xff0c;而出现备份文件的数…...

Django 项目打包exe本地运行

Django 项目打包exe本地运行 记一次离谱的需求 其实本来觉得Django项目架构比较清晰,代码逻辑也简单,没打算记笔记,结果遇到离谱需求折腾了很久 开发了一个Django项目,到交付的时候了,客户说自己没有服务器… 没服务器还要登录功能😓 没办法,甲方最大,整吧 第一…...

20250330 Pyflink with Paimon

1. 数据湖 2. 本地安装Pyflink和Paimon 必须安装Python 3.11 Pip install python -m pip install apache-flink1.20.1 需要手动加入这两个jar 测试代码&#xff1a; import argparse import logging import sys import timefrom pyflink.common import Row from pyflink.tab…...

RTMP推流服务器nginx在linux上的编译部署

RTMP&#xff08;Real-Time Messaging Protocol&#xff09;推流确实需要服务器支持‌。RTMP推流服务器的主要功能是接收来自推流客户端的数据流&#xff0c;对其进行处理和转发。服务器会根据RTMP协议与客户端建立连接&#xff0c;处理推流数据&#xff08;如转码、录制等&…...

Matlab教程001:软件介绍和界面使用

1.1 软件介绍 1.1.1 Matlab的介绍 MATLAB&#xff08;MATrix LABoratory&#xff09;是一款由 MathWorks 公司开发的高级编程语言和交互式环境&#xff0c;广泛用于 科学计算、数据分析、机器学习、工程建模、仿真和信号处理 等领域。 1.1.2 主要应用领域 数据分析与可视化…...

【SQL Server数据库备份详细教程】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…...

Java设计模式之解释器模式

概念 解释器模式是一种行为型设计模式&#xff0c;用于定义一种语言的语法规则&#xff0c;并提供解释器来解释该语言中的表达式。 作用 其核心作用是将复杂的语法分解为简单的语法单元&#xff0c;通过递归组合的方式构建抽象语法树&#xff08;AST&#xff09;&#xff0c…...

el-date-picker时间范围 编辑回显后不能修改问题

el-date-picker daterange时间范围 编辑回显后不能修改 <el-form-item:label"LABELS.gplanRecordDateLabel"prop"gplanRecordDate"><el-date-pickerstyle"width: 300px"v-model"formData.gplanRecordDate"type"daterang…...

vue复习1~45

1.关于vue 要理解记忆规则&#xff0c;可以到官网上去找 vue的两种使用方式 vue核心包开发 场景&#xff1a;局部模块改造vue核心包 & vue插件 工程化开发 场景&#xff1a;整站开发 2.创建vue实例 构建用户页面->创建vue实例初始化渲染 学习阶段用开发版本 3.插值…...

Servlet开发与生命周期详解-2

一、在集成开发环境当中开发Servlet程序 1.集成开发工具很多&#xff0c;其中目前使用比较多的是&#xff1a; IntelliJ IDEA&#xff08;这个居多&#xff0c;IDEA在提示功能方面要强于Eclipse&#xff0c;也就是说IDEA使用起来比Eclipse更加智能&#xff0c;更好用。JetBrai…...

vue2项目eslint提示<template v-for> key should be placed on the <template> tag

在template标签上使用v-for时&#xff0c;vue2会提示key不可放在template标签上&#xff0c;必须放在子元素上。vue3会提示key必须放在template标签上。这时候可能我们怎么写都会触发eslint校验提醒。不影响使用&#xff0c;但看着难受。 我们可以在根目录上新建jsconfig.json…...

老是忘记package.json,备忘一下 webpack 环境下 Vue Cli 和 Vite 命令行工具对比

Vue 2.X webpack 环境下 Vue Cli 的命令 "scripts": {"dev": "vue-cli-service serve","prod": "vue-cli-service serve --mode production","build:dev": "vue-cli-service build --mode development"…...

关于跨域问题(本地前端访问服务器端接口跨域出错)

问题来源&#xff1a; 当服务器封装了接口但是本地电脑端前端访问出现跨域问题。 解决方案&#xff1b; 1、使用ipconfig 查看本地电脑的ip地址 ipconfig 2、在后端接口处配置如下代码 allow_origins["http://本地ip地址:3001", # 局域网内其他设备访问的本地…...

Jackson相关问题

1、json转dto的时候&#xff0c;dto不能定义isActive这种带有is的前缀&#xff0c;如果使用Lombok的Getter/Setter的话&#xff0c;json {"isActive": true}&#xff0c;这样&#xff0c;将无法正确赋值。此时的dto再次转为json之后&#xff0c;得到的是active:false…...

【C++】互斥锁(Mutex)和原子操作(Atomics)

详细探讨 C 中的并发、多线程、互斥锁&#xff08;Mutex&#xff09;和原子操作&#xff08;Atomics&#xff09;的概念及其区别&#xff0c;并附带代码示例。 1. C 并发与多线程 (Concurrency vs. Multithreading) 并发 (Concurrency)&#xff1a;指系统能够处理多个任务的能…...

Linux--命令行操作

一、Linux的作用 1.简单的文件操作 2.编程 3.支持系统和网络 二、多账号管理 1、我们需要在root账号下进行&#xff0c;可以用whoami来查询账号身份 2、adduser 你要创建的账号名 就可以创建一个账号 3、ls /home可以查看账号是否创立 4、使用passwd 创建账号名字的来设…...

具身系列——Diffusion Policy算法实现CartPole游戏

代码原理分析 1. 核心思想 该代码实现了一个基于扩散模型&#xff08;Diffusion Model&#xff09;的强化学习策略网络。扩散模型通过逐步去噪过程生成动作&#xff0c;核心思想是&#xff1a; • 前向过程&#xff1a;通过T步逐渐将专家动作添加高斯噪声&#xff0c;最终变成…...

4.用 Excel 录入数据

一 用 Excel 录入数据的两种方式 用鼠标键盘录入数据和从网上爬取数据。 二 用鼠标键盘录入数据 1.录入数据的规范 横着录入数据&#xff08;横着一条条录入数据&#xff09;。 2.使用快捷键进行数据录入 tab 键和 enter 键。 tab 键&#xff1a;向右移动一个单元格。 tab 键…...

nginx配置跳转设置Host有误导致报404问题

我们有个项目&#xff0c;前端调用了第三方接口。为了避免跨域&#xff0c;所以使用nginx进行转发。一直正常工作&#xff0c;相安无事。近日第三方调整了安全策略&#xff0c;http转换成https&#xff0c;原本使用ip&#xff0c;现在也改成使用域名&#xff0c;所以nginx这里我…...

接口/UI自动化面试题

一、UI自动化 1.1、接口和UI自动化有多少用例&#xff1f; 回答策略&#xff1a;根据接口设定用例&#xff0c;100个接口&#xff0c;自动化case在1500-2000左右。结合自身的项目&#xff0c;回答覆盖的主功能流程。 示例&#xff1a; 接口自动化的测试case一般需要根据接口数…...

Java 中调用语言模型(如 OpenAI、阿里云通义千问、Hugging Face 等)API 的详细步骤和示例代码,涵盖常见场景及注意事项

以下是 Java 中调用语言模型&#xff08;如 OpenAI、阿里云通义千问、Hugging Face 等&#xff09;API 的详细步骤和示例代码&#xff0c;涵盖常见场景及注意事项&#xff1a; 1. 常见语言模型 API 选择 (1) OpenAI API 特点&#xff1a;支持 GPT-3、GPT-3.5、GPT-4 等模型&a…...

搜广推校招面经六十

soul推荐算法 一、word2vec原理 参考一篇文章入门Word2Vec 二、word2vec正负采样怎么做的、word2vec采用的loss和原理 见【搜广推校招面经四、搜广推校招面经五十二、搜广推校招面经五十七】 不太理解为啥问这么多word2vec&#xff0c;索性直接整理一遍。 三、多路召回融合…...

红宝书第十二讲:详解JavaScript中的工厂模式与原型模式等各种设计模式

红宝书第十二讲&#xff1a;详解JavaScript中的工厂模式与原型模式等各种设计模式 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 工厂模式和原型模式解析 一、工厂模式&#xff1a;像订外卖一样创建对象 工厂模…...

Flutter完整开发实战详解(一、Dart语言和Flutter基础)

前言 在如今的 Flutter 大潮下&#xff0c;本系列是让你看完会安心的文章。本系列将完整讲述&#xff1a;如何快速从0开发一个完整的 Flutter APP&#xff0c;配套高完成度 Flutter 开源项目 GSYGithubAppFlutter。同时也会提供一些 Flutter 的开发细节技巧&#xff0c;并针对…...

Kafka 偏移量

在 Apache Kafka 中&#xff0c;偏移量&#xff08;Offset&#xff09;是一个非常重要的概念。它不仅用于标识消息的位置&#xff0c;还在多种场景中发挥关键作用。本文将详细介绍 Kafka 偏移量的核心概念及其使用场景。 一、偏移量的核心概念 1. 定义 偏移量是一个非负整数…...

手撕LRU缓存Java版(带输入输出)

由于面试手撕lru没撕出来&#xff0c;导致心态炸裂&#xff0c;今天特地练习了lru输入输出 手撕版&#xff0c;在每个函数里手动加上输出 public class LC146 {static class LRUCache{class Node{int key, value;Node prev, next;Node(int key, int value){this.key key;thi…...

Android 12系统源码_系统启动(二)Zygote进程

前言 Zygote&#xff08;意为“受精卵”&#xff09;是 Android 系统中的一个核心进程&#xff0c;负责 孵化&#xff08;fork&#xff09;应用进程&#xff0c;以优化应用启动速度和内存占用。它是 Android 系统启动后第一个由 init 进程启动的 Java 进程&#xff0c;后续所有…...

python之并发编程

并发编程介绍 串行、并行与并发的区别 进程、线程、协程的区别 1. 进程 (Process) 定义&#xff1a;进程是操作系统为运行中的程序分配的基本单位。每个进程都有独立的地址空间和资源&#xff08;如内存、文件句柄等&#xff09;。特点&#xff1a; 进程是资源分配的基本单位…...

极速全场景 MPP数据库starrocks介绍

目录 一、引子 二、起源 &#xff08;一&#xff09;前身 &#xff08;二&#xff09;定位 三、特点 &#xff08;一&#xff09;高性能架构 &#xff08;二&#xff09;实时分析 &#xff08;三&#xff09;高并发与扩展性 &#xff08;四&#xff09;兼容性与生态 …...