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

【C++11】新的类功能、lambda

📝前言:

这篇文章我们来讲讲C++11——新的类功能、lambda、包装器

🎬个人简介:努力学习ing
📋个人专栏:C++学习笔记
🎀CSDN主页 愚润求学
🌄其他专栏:C语言入门基础,python入门基础,python刷题专栏,Linux


文章目录

  • 一,新的类功能
    • (1)默认构造和默认赋值
    • default和delete
    • final与override
  • 二,lambda
    • lambda基础语法
    • 捕捉列表
    • lambda 的原理

一,新的类功能

(1)默认构造和默认赋值

在学习类和对象的时候,我们已经了解过了类的6个默认成员函数。
而C++11引入右值引用以后,又多增加了:移动构造函数移动赋值运算符重载函数这两个默认成员函数。两者类似。

默认移动构造

  • 生成条件:1,当没有显式实现移动构造;2,且没有实现析构函数、拷贝构造、拷贝赋值中任意一个。编译器就会生成默认移动构造
  • 行为:对于内置类型:按字节浅拷贝。对于自定义类型:调用对应类型的成员的移动构造,如果没有实现移动构造,则调用它的拷贝构造

默认的移动赋值重载函数

  • 生成条件:1,没有显式的实现移动赋值重载函数;2,且没有实现析构函数、拷贝函数,拷贝赋值中的任意一个。编译器就会生成默认的移动赋值重载函数。
  • 行为:对于内置类型:按字节浅拷贝。对于内置类型:调用成员的移动赋值重载,如果没有,就调用它的拷贝赋值重载

移动构造/赋值和拷贝构造/赋值的关系:
如果提供了移动构造或者移动赋值,编译器不会自动提供拷贝构造和拷贝赋值。即:移动和拷贝两者的默认生成前提都是另一个没有实现。

示例1:
没有移动构造和移动赋值,但是有拷贝构造和拷贝赋值的时候(不会生成默认的):

int main()
{tr::string s1 = "hello world";tr::string s3 = tr::string("tr");s1 = tr::string("fighting");return 0;
}

运行结果:
在这里插入图片描述

  • 第一个:构造是s1
  • 第二个:本来应该是:构造 + 移动构造(但是没有移动构造,且没有默认生成),变成了构造 + 拷贝构造,然后被优化成一个构造
  • 第三、四个:构造 + 移动赋值 变成 构造 + 拷贝赋值

示例2:
没有析构、拷贝构造、拷贝赋值时,使用生成的默认的:

int main()
{tr::string s1 = "hello world";tr::string s3 = tr::string("tr");s1 = move(s1);return 0;
}

运行结果:
在这里插入图片描述

这里打印不出来啊,因为调的是系统默认生成的。但是我们可以看变量信息:
在这里插入图片描述
因为tr::string的成员函数都是内置类型,所以在移动赋值的时候都用了浅拷贝。

如果自己实现了移动构造和移动赋值:
在这里插入图片描述
可见确实和上面的默认的效果一样。(前面构造是:编译器把构造 + 移动构造优化了)

default和delete

  • default :用于显式地要求编译器生成默认版本的特殊成员函数(即使自己已经实现了)
  • delete:禁用成员函数,或要求编译器自动生成特定的默认成员函数
    (注意这个delete可不是和new对应那个)

示例:

string(const string& s) = delete; // 要求不自动生成拷贝构造
void reserve(size_t n) = delete; // 禁止使用reserve成员函数
string(string&& s) = default; // 要求编译器生成默认的移动构造

注意:delete的函数,就代表禁用,函数不能再实现,不然是重定义,default也是。
即:一个函数(不构成重载)不能既被delete / default,又被实现

final与override

final

  • 用于类:表示类是最终类,不能被继承
  • 用于虚函数:表示函数是最终函数,不能被重写

示例:

class Base final { // 用于类写法// 类的成员
};class Base{virtual void func() final { // 用于函数写法// 函数实现}
};

override:帮助用户检查虚函数是否真正重写(书写正确不会报错,书写错误会报错)

示例:

class Shape {
public:virtual void draw() {std::cout << "Drawing a generic shape." << std::endl;}
};// 重写正确(如:基类中确实有这个虚函数,函数名没问题...)
class Circle final : public Shape {
public:void draw() override {std::cout << "Drawing a circle." << std::endl;}
};

二,lambda

lambda基础语法

这里我只记录C++中lambda的语法,以及一些细节知识点。不对lambda的意义做过多讲解。

  • lambda表达式的本质是一个⼀个匿名函数对象
  • lambda语法层面而言没有类型,如果要接收可以用auto对象(当然也可以不接收)

lambda表达式基本语法:

[捕抓列表] (参数列表) -> 返回类型 {函数体}
  • 当参数列表 / 返回类型为空时,这两部分可以省略,()->也可以省。返回类型不为空可以省略,编译器自动推导
  • 函数体 / 捕捉列表就算为空:[ ]{ }也不能省

基本示例:

auto lambda1 = [](int x, int y)->int {return x + y; };
int main()
{cout << lambda1(1, 1) << endl; // 输出 2 return 0;
}

捕捉列表

下面详细讲讲捕捉列表
lambda表达式默认只能使用,lambda函数体和参数中的变量,如果想使用外层作用域的变量就需要捕捉

捕捉有三种方法:

  • 显式捕捉:值捕捉和引用捕捉:[x,y, &z]值捕捉了xy,引用捕捉了z。【值捕捉的值不能修改,相当于const修饰,引用捕捉的值可以修改,且会改外面的(因为是别名)】
  • 隐式自动捕捉:=表示隐式值捕捉,&表示隐式引用捕捉。我们在lambda中用了什么变量,编译器会自动帮我们去捕捉。但不能[=, &]
  • 混合捕捉:即上面的两种方法可以混合,但是第一个参数必须为隐式捕捉,如:[=, &x, &y]

其他细节:

  • lambda 表达式如果在函数局部域中,它可以捕捉 lambda 位置之前定义的变量,但不能捕捉静态局部变量和全局变量(静态局部变量和全局变量也不需要捕捉,可以直接用)。这也意味着 lambda 表达式如果定义在全局位置,捕捉列表必须为空
  • 在参数列表后面加mutable可以取消其值捕捉参数的常性,这样我们就可以修改它,但是这时候的修改不会改到外部的实参。

使用示例:

int x = 0;
// 捕捉列表必须为空,因为全局变量不用捕捉就可以用,没有可被捕捉的变量
auto func1 = []() {x++; };int main()
{// 只能用当前lambda局部域和捕捉的对象和全局对象int a = 0, b = 1, c = 2, d = 3;auto func1 = [a, &b]{//a++; 值捕捉的变量不能修改(有常性b++; // 引用捕捉的变量可以修改int ret = a + b;return ret;};cout << func1() << endl;// 隐式值捕捉// 用了哪些变量就捕捉哪些变量auto func2 = [=]{int ret = a + b + c;return ret;};cout << func2() << endl;// 混合捕捉1auto func4 = [&, a, b]{c++;d++;return a + b + c + d;};cout << func4() << endl;cout << a << " " << b << " " << c << " " << d << endl;// 局部的静态和全局变量不能捕捉,也不需要捕捉static int m = 0;auto func5 = []{int ret = x + m;return ret;};cout << func5() << endl;// 传值捕捉本质是⼀种拷贝,并且被const修饰了// mutable相当于去掉const属性,可以修改了// 但是修改了不会影响外⾯被捕捉的值,因为是⼀种拷贝auto func6 = [=]()mutable{a++;b++;c++;d++;return a + b + c + d;};cout << func6() << endl;cout << a << " " << b << " " << c << " " << d << endl;return 0;
}

运行结果:
在这里插入图片描述

lambda 的原理

从编译后的汇编指令层看,lambda就是一个编译器生成的对应的仿函数的类。

  • 仿函数的类名是编译按⼀定规则⽣成的,保证不同的 lambda ⽣成的类名不同
  • lambda参数/返回类型/函数体就是仿函数operator()的参数/返回类型/函数体
  • lambda 的捕捉列表本质是⽣成的仿函数类的成员变量,也就是说捕捉列表的变量都是 lambda 类构造函数的实参

🌈我的分享也就到此结束啦🌈
要是我的分享也能对你的学习起到帮助,那简直是太酷啦!
若有不足,还请大家多多指正,我们一起学习交流!
📢公主,王子:点赞👍→收藏⭐→关注🔍
感谢大家的观看和支持!祝大家都能得偿所愿,天天开心!!!

相关文章:

【C++11】新的类功能、lambda

&#x1f4dd;前言&#xff1a; 这篇文章我们来讲讲C11——新的类功能、lambda、包装器 &#x1f3ac;个人简介&#xff1a;努力学习ing &#x1f4cb;个人专栏&#xff1a;C学习笔记 &#x1f380;CSDN主页 愚润求学 &#x1f304;其他专栏&#xff1a;C语言入门基础&#xf…...

stm32 g031g8 flash擦除函数被坑

先记录一下在擦除的时候由于调用了这个FLASH_PageErase(FLASH_BANK_1, secpos); 导致擦除不成功&#xff0c;写入失败。 下面的擦除有问题// 使用 FLASH_PageErase 擦除该页while ((FLASH->SR & FLASH_SR_BSY1) ! 0); // 等待空闲FLASH_PageErase(FLASH_BANK_1, secpo…...

SQL实战:04之SQL中的分组问题求解

文章目录 概述题目&#xff1a;分组问题求解题解第一步&#xff1a;求解差值步骤二&#xff1a;窗口分组累加完整SQL 总结 概述 最近刷题时遇到一些比较有意思的题目&#xff0c;乍一遇上时还不知道怎么求解&#xff0c;在灵光一闪时找到了问题的求解答案&#xff0c;感觉还比…...

基于DrissionPage的实习信息爬虫改造与解析

目录 ​编辑 一、DrissionPage技术优势分析 二、代码改造实现 2.1 环境配置 2.2 爬虫类定义 2.3 核心爬取逻辑 一级页面解析优化 二级页面解析优化 2.4 分页控制机制 三、关键技术解析 3.1 智能元素定位 3.2 请求管理优化 3.3 反爬对抗策略 四、改造前后对比测试…...

react-native打包报错:缺少build文件夹

在React Native项目中&#xff0c;如果你遇到了提示“没有build文件夹”的问题&#xff0c;这通常是因为项目的某些部分没有正确初始化或者配置。以下是一些解决步骤。如果缺少build文件&#xff0c;这会导致你使用gradlew assembleRealease失败&#xff0c;进而无法打包APK。下…...

【无需安装额外软件,JavaScript脚本】B站批量取消关注

步骤 注意&#xff1a; 提前选好需要批量取消关注的分组&#xff01;&#xff01;&#xff01;脚本过程中会提示要求输入B站账号的手机号码作为验证&#xff0c;不是封号&#xff0c;只是验证&#xff01;&#xff01;&#xff01; 打开B站关注页面 进入个人关注网页&#xff0…...

【Linux】第十五章 调度未来任务

1.如何调度延迟的用户任务&#xff1f; at 软件包包含 atd守护进程&#xff0c;和一组命令&#xff08;at、atq等&#xff09;。在默认的 RHEL 安装过程中&#xff0c;将自动安装并启用 atd守护进程。root 及普通用户可以使用 at 命令创建计划任务&#xff0c;atd守护进程提供…...

JVM GC垃圾回收算法

垃圾回收算法&#xff08;GC Algorithms&#xff09; JVM 根据对象生命周期特性&#xff08;分代假设&#xff09;采用不同的回收算法&#xff0c;核心算法包括&#xff1a; 标记-清除&#xff08;Mark-Sweep&#xff09; 此算法执行分两阶段。第一阶段从引用根节点开始标记…...

计算机毕业设计--基于深度学习(U-Net与多尺度ViT)的车牌模糊图像修复算法设计与实现(含Github代码+Web端在线体验界面)

基于深度学习的U-Net架构下多尺度Transformer车牌图像去模糊算法设计与实现 如果想对旧照片进行模糊去除&#xff0c;划痕修复、清晰化&#xff0c;请参考这篇CSDN作品&#x1f447; 计算机毕业设计–基于深度学习的图像修复&#xff08;清晰化划痕修复色彩增强&#xff09;算…...

塑料材料工程师简历模板

模板信息 简历范文名称&#xff1a;塑料材料工程师简历模板&#xff0c;所属行业&#xff1a;其他 | 职位&#xff0c;模板编号&#xff1a;DEEBPX 专业的个人简历模板&#xff0c;逻辑清晰&#xff0c;排版简洁美观&#xff0c;让你的个人简历显得更专业&#xff0c;找到好工…...

Nginx核心功能与LNMP部署

目录 一、引言 二、Nginx 简介 2.1 Nginx 的起源与发展 2.2 Nginx 的特点 三、Nginx 核心功能详解 3.1 HTTP 服务器功能 3.1.1 静态资源处理 3.1.2 HTTP 协议支持 3.2 反向代理功能 3.2.1 反向代理的原理 3.2.2 Nginx 反向代理配置 3.3 负载均衡功能 3.3.1 负载均…...

爬虫学习笔记(五)---数据解析之re

数据提取 前面的爬虫笔记学习的都是如何爬取整个页面的内容&#xff0c;服务器渲染中&#xff0c;数据是直接放在源代码html里面的&#xff0c;大多数情况下整个页面的内容真正需要的只是一小部分&#xff0c;那把这一小部分提取出来的过程就叫做数据提取 数据解析方式 re解…...

ESP32- 开发笔记- 软件开发 4 - GPIO 口

1 背景介绍 GPIO&#xff08;General Purpose Input/Output&#xff09; ——通用输入输出口&#xff0c;就是能由软件自由控制输入&#xff08;接收外界信号&#xff09;或输出&#xff08;发出电平信号&#xff09;的引脚。 ESP32 最核心的功能之一&#xff0c;能被用来控制…...

大前端开发——前端知识渐变分层讲解 利用金字塔原理简化前端知识体系

Web开发基础 核心概念 HTML、CSS和JavaScript&#xff1a;Web开发的三大基石&#xff0c;分别负责结构、样式和行为。 代码管理&#xff1a;随着项目规模扩大&#xff0c;需要将代码拆分成小块&#xff0c;便于维护。 作用域污染&#xff1a;早期所有代码共享全局作用域&…...

面向网络安全的开源 大模型-Foundation-Sec-8B

1. Foundation-Sec-8B 整体介绍 Foundation-Sec-8B 是一个专注于网络安全领域的大型语言模型 (LLM),由思科的基础人工智能团队 (Foundation AI) 开发 。它基于 Llama 3.1-8B 架构构建,并通过在一个精心策划和整理的网络安全专业语料库上进行持续预训练而得到增强 。该模型旨在…...

长效住宅IP是什么?如何获取长效住宅IP?

在当今的互联网世界里&#xff0c;IP地址作为连接用户与网站之间的桥梁&#xff0c;其重要性不言而喻。对于跨境电商、社交媒体运营以及数据采集等领域的专业人士而言&#xff0c;普通的IP地址已无法满足日益复杂的需求。他们更需要一种稳定、安全且持久的长效住宅IP来完成各类…...

零基础实现把知识库接到聆思CSK6大模型开发板上

前言 大模型作为一个语言模型&#xff0c;实际上没有真正的记忆功能。所谓的对话记忆只是开发者将对话历史向GPT发送消息时将最近的对话历史通过提示工程组发送给ChatGPT。换句话说&#xff0c;如果对话历史超过了大模型的最大上下文&#xff0c;GPT会忘记之前的部分&#xff0…...

docker 部署前、后端分离项目详细步骤(从打包到部署)

在平常的开发工作中&#xff0c;一个项目经历需求、开发、测试、上线等步骤。在开发测试完成后&#xff0c;我们需要部署测试环境、生产环境等&#xff0c;那么我们用 docker 方式应该怎么部署呢&#xff1f;前后端分离的项目又该如何部署呢&#xff1f;那么&#xff0c;今天我…...

【深度学习的灵魂】图片布局生成模型LayoutPrompt(1)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;《深度学习理论直觉三十讲》_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目…...

BG开发者日志429:故事模式的思路

1、故事模式已有的一关试验关中&#xff0c;直接揭示了一些重要真相&#xff0c;白给了。 /原设计思路是玩家可以直接玩故事模式&#xff0c;很快就能通关本模式的所有关卡&#xff0c;知道所有真相。 /原表现方式是步行模拟&#xff0c;到地点看对话。 &#xff08;现在看来…...

Linux批量管理:Ansible自动化运维指南

引言 在服务器规模化的时代&#xff0c;Ansible就像一位"自动化指挥官"&#x1f396;️&#xff0c;让你轻松管理成百上千台Linux主机&#xff01;本文将带你全面掌握Ansible的核心用法&#xff0c;从基础架构到高级Playbook&#xff0c;从主机管理到应用部署。无论…...

【AI提示词】第一性原理

提示说明 擅长运用第一性原理思维进行深度问题分析与创新解决方案构建的专家。 提示词 # Role: 第一性原理思考导师## Profile - language: 中文 - description: 擅长运用第一性原理思维进行深度问题分析与创新解决方案构建的专家 - background: 具备理论物理学与哲学复合背…...

【LeetCode】螺旋矩阵

题目 题目链接 请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素&#xff0c;示例如下&#xff1a; 思路 整体思路为模拟。具体地&#xff0c;可以采用“减而治之”的思想&#xff0c;将整个遍历过程拆分为一次次对每一行和每一列的遍历&#xff0c;每次只考虑一行/…...

给 BBRv2/3 火上浇油的 drain-to-target

最近彻底跟 BBR 杠上了&#xff0c;再读一篇落实性论文 Promises and Potential of BBRv3&#xff0c;结论依然是 BBRv3 并未如声称的那般优化公平性&#xff0c;反而可能更糟糕&#xff0c;不得不说又是任重而道远。 说一个我遇到的&#xff0c;讲理之外顺带吐槽。 BBRv1 在…...

后端id类型为long类型时,返回给前端浏览器四舍五入,导致id精度缺失问题

背景 今天在代码里&#xff0c;掉了别人写的接口&#xff0c;有个id的字段是long类型的&#xff0c;我这边加点参数返回给前端&#xff0c;然后前端根据id修改&#xff0c;结果修改的数据记录有&#xff0c;但是没起作用&#xff0c;后来发现根据他传给我的id在后台数据库查不…...

《云原生》核心内容梳理和分阶段学习计划

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息文章目录 云原生核心内容梳理和分阶段学习计划一、云原生核心技术栈(2025年重点方向)二、分阶段学习计划(6-12个月系统性进阶)**阶段1:基础入…...

跟我学C++中级篇——控制死锁

一、同步和死锁 在前面学习多线程和网络编程时&#xff0c;都对线程中数据的同步和数据结构多线程访问的安全问题进行了分析和说明。其实&#xff0c;多线程编程之所以难&#xff0c;难点之一就在这里&#xff0c;数据同步意味着效率和安全的平衡&#xff0c;而这里的安全有一…...

「Mac畅玩AIGC与多模态08」开发篇04 - 基于 OpenAPI Schema 开发专用 Agent 插件

一、概述 本篇介绍如何在 macOS 环境下,通过编写 OpenAPI Schema,开发自定义的专用插件,让智能体可以调用外部 API,扩展功能至任意在线服务。实践内容基于 Dify 平台,适配 macOS 开发环境。 二、环境准备 1. 确认本地开发环境 macOS 系统Dify 平台已完成部署并可访问本…...

“兴火·燎原”总冠军诞生,云宏信息《金融高算力轻量云平台》登顶

“兴火燎原”创新马拉松公开赛2024年度全国总决赛于4月18日在福州举办&#xff0c;云宏科技股份有限公司&#xff08;以下简称&#xff1a;云宏&#xff09;的《金融高算力轻量云平台》项目脱颖而出&#xff0c;夺得全国总冠军。 作为数字中国创新大赛金融领域的核心赛事&…...

MySQL 索引与事务详解

MySQL 索引与事务详解 一、索引&#xff08;Index&#xff09; 1. 索引的作用与原理 索引是数据库的"目录"&#xff0c;能够大幅提高查询速度&#xff0c;但会增加写入开销。MySQL 使用 BTree 作为主要索引结构。 2. 索引类型 (1) 普通索引 CREATE INDEX idx_n…...

洛谷题解 | CF111C Petya and Spiders

目录 题目描述输入格式输出格式输入输出样例 #1输入 #1输出 #1 输入输出样例 #2输入 #2输出 #2 说明/提示题目简化题目思路AC 代码 题目描述 Little Petya loves training spiders. Petya has a board $ nm $ in size. Each cell of the board initially has a spider sitting…...

【深度对比】Google Play与IOS 马甲包处理差异分析

在移动应用发布与推广过程中&#xff0c;马甲包&#xff08;Cloned App / Alternate Version&#xff09; 曾被广泛用于流量测试、风险隔离、多品牌运营等场景中。随着 Google Play 与 Apple App Store 审核政策不断收紧&#xff0c;开发者们越来越关注两个平台对“马甲包”的态…...

【C++】C++11新特性(二)

目录 完美转发 引用折叠&#xff1a; lambda表达式 完美转发 引用折叠&#xff1a; 引用折叠是 C的类型系统规则&#xff0c;用于处理“引用的引用”&#xff08;如 T& &&#xff09;。 在推导过程中&#xff0c;必须折叠成有效的单一引用类型。直接声明引用的引用…...

高等数学-第七版-下册 选做记录 习题9-4

1. 3. 4. 8....

特殊权限管理

特殊权限的类型 SUID&#xff08;Set User ID&#xff09;&#xff1a;当一个可执行文件设置了 SUID 权限后&#xff0c;在执行该文件时&#xff0c;进程会以文件所有者的身份运行&#xff0c;而不是以执行用户的身份。例如&#xff0c;/usr/bin/passwd文件用于修改用户密码&a…...

最新的30个Android Kotlin面试题

以下是2025年最新的30个Android Kotlin面试题及其核心解析&#xff0c;综合了协程、密封类、高阶函数、扩展函数等高频考点&#xff0c;并附有相关引用来源&#xff1a; 一、协程与并发编程 协程与线程的核心区别是什么&#xff1f; 协程是轻量级线程&#xff0c;通过挂起而非阻…...

牛客周赛 Round 91

赛时成绩如下&#xff1a; A. while 题目描述 小歪找到了一个由五个字符构成的字符串&#xff0c;它一次可以选择任意一个字符&#xff0c;将其修改为另一个字符&#xff0c;他想要知道&#xff0c;将这个字符串修改为 "while" 需要的最少操作次数。 解题思路&#x…...

Kafka 的服务端的物理存储架构是什么?零拷贝,mmap,sendfile、DMA gather又是什么?

Kafka 服务端的物理存储架构 Kafka 的物理存储架构设计旨在支持高吞吐、低延迟的数据处理&#xff0c;其核心特点包括&#xff1a; 1. 分区与日志段 主题&#xff08;Topic&#xff09;与分区&#xff08;Partition&#xff09;&#xff1a; Kafka 将每个主题划分为多个分区&…...

1.7 点云数据获取方式——视觉SLAM

图1-7-1 Visual SLAM生成的点...

双向流热固耦合的收敛

1 收敛性 如果想把流固耦合计算过程的收敛性弄清楚&#xff0c;必须理解流固耦合的求解过程和对流场与固体场的定义设置&#xff1a; -这个与其他的真实物理场可能有所不同 -例如你的初始条件可能是不同的当遇到收敛困难时&#xff0c;需要看一下的求解过程用户使用监测点和…...

C++之类和对象:构造函数,析构函数,拷贝构造,赋值运算符重载

前提&#xff1a;如果一个类是空类&#xff0c;C中空类中真的什么都没有吗&#xff0c;不是的&#xff0c;编译器会自动生成6个默认成员函数。默认成员函数&#xff1a;用户没有显式实现&#xff0c;编译器会生成的成员函数称为默认成员函数。 默认成员函数&#xff1a;构造函…...

Vue2 相关知识点整理

一、Vue2 核心机制 1. Vue2 的响应式原理是什么&#xff1f; 答案&#xff1a; Vue2 通过 Object.defineProperty 给对象的每个属性添加 getter 和 setter&#xff0c;当数据被访问或修改时&#xff0c;自动触发视图更新。通俗解释&#xff1a; 就像给每个数据绑了一个“监控…...

CSS:编写位置分类及优先级

文章目录 一、行内样式二、内部样式三、外部样式&#xff08;推荐&#xff09;四、优先级五、编码风格 一、行内样式 最好不这样写 二、内部样式 可以使用 三、外部样式&#xff08;推荐&#xff09; 四、优先级 行内样式 > 内部样式 外部样式 五、编码风格...

Tauri 跨平台开发指南及实战:用前端技术征服桌面应用(合集-万字长文)

厌倦了笨重的Electron应用&#xff1f;想要构建体积小、性能高、安全可靠的跨平台桌面应用&#xff1f;Tauri将是你的不二之选&#xff01;本教程带你从入门到精通&#xff0c;掌握这个下一代桌面应用开发框架&#xff0c;并通过实战APK分析工具项目&#xff0c;将理论知识转化…...

深入解析 Linux 进程池:原理、实现与高并发优化

引言 当你的服务器需要同时处理 10,000 个客户端请求时&#xff0c;传统的"来一个请求创建一个进程"模式会导致严重的性能瓶颈。此时&#xff0c;进程池&#xff08;Process Pool&#xff09; 便成为关键解决方案。它像一支训练有素的特种部队&#xff0c;通过预先创…...

[Python]非零基础的快速上手

从js转的python&#xff0c;没有从初学者阶段开始&#xff0c;主打一个快速上手能写再说. pycharm:一种编辑器 数据类型 基本数据类型:整型(整数)、浮点型、字符型、布尔型 复杂数据类型:列表(数组)、集合区{1,2,3}、元组(1,3.4)字典{n’:2,b:1} 模板字符串 输出模板字符串…...

《算法笔记》10.5小节——图算法专题->最小生成树 问题 E: Jungle Roads

题目描述 The Head Elder of the tropical island of Lagrishan has a problem. A burst of foreign aid money was spent on extra roads between villages some years ago. But the jungle overtakes roads relentlessly, so the large road network is too expensive to mai…...

数据中心网络架构:高效规划与自动化设计实践

在数据中心网络架构规划设计中&#xff0c;面临如下难点&#xff1a; 设备数量庞大&#xff1a; 服务器、交换机等设备数量多&#xff0c;如何合理规划机柜布局和空间分配&#xff0c;避免资源浪费或密度超标&#xff0c;成为设计难点。 线缆设计复杂&#xff1a; 海量线缆…...

Mysql存储引擎、锁机制

Mysql存储引擎 InnoDB​&#xff08;MySQL 5.5 及以后版本中的默认存储引擎&#xff09; ​​事务支持​​&#xff1a;支持 ​​ACID 事务​​&#xff0c;适合需要高可靠性的场景&#xff08;如支付、订单&#xff09;。 ​​锁机制​​&#xff1a;默认使用 ​​行级锁​​…...

UVA1537 Picnic Planning

目录 题目算法标签: 最小生成树, k r u s k a l kruskal kruskal重构树, 树形 d p dp dp思路重构树代码 题目 UVA1537 Picnic Planning 算法标签: 最小生成树, k r u s k a l kruskal kruskal重构树, 树形 d p dp dp 思路 将 1 1 1号点设置为终点, 然后执行重构树计算度数…...