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

【C++】入门基础【上】

目录

  • 一、C++的发展历史
  • 二、C++学习书籍推荐
  • 三、C++的第一个程序
    • 1、命名空间`namespace`
    • 2、命名空间的使用
    • 3、头文件`<iostream>`是干什么的?

个人主页<—请点击
C++专栏<—请点击
在这里插入图片描述

一、C++的发展历史

C++的起源可以追溯到1979年,当时Bjarne Stroustrup(本贾尼·斯特劳斯特卢普)在贝尔实验室从事计算机科学和软件工程的研究工作。面对项目中复杂的软件开发任务,特别是模拟和操作系统的开发工作,他感受到了现有语言(如C语言)在表达能力、可维护性和可扩展性方面的不足。
1983年,Bjarne Stroustrup在C语言的基础上添加了面向对象编程的特性,设计出了C++语言的雏形,此时的C++已经有了类、封装、继承等核心概念,为后来的面向对象编程奠定了基础。这⼀年该语言被正式命名为C++。在随后的几年中,C++在学术界和工业界的应用逐渐增多。⼀些大学和研究所开始将C++作为教学和研究的首选语言,而⼀些公司也开始在产品开发中尝试使用C++。这⼀时期,C++的标准库和模板等特性也得到了进⼀步的完善和发展。
C++的标准化工作于1989年开始,并成立了⼀个ANSIISOInternational Standards Organization)国际标准化组织的联合标准化委员会。1994年标准化委员会提出了第一个标准化草案。在该草案中,委员会在保持斯特劳斯特卢普最初定义的所有特征的同时,还增加了部分新特征。
在完成C++标准化的第⼀个草案后不久,STLStandard Template Library)是惠普实验室开发的⼀系列软件的统称。它是由Alexander StepanovMeng LeeDavid R Musser在惠普实验室工作时所开发出来的。在通过了标准化第⼀个草案之后,联合标准化委员会投票并通过了将STL包含C++标准中的提议。STLC++的扩展超出C++的最初定义范围。虽然在标准中增加STL是个很重要的决定,但也因此延缓了C++标准化的进程。
1997年11月14日,联合标准化委员会通过了该标准的最终草案。1998年,C++ANSI/IS0标准被投入使用。

Bjarne Stroustrup:

Bjarne Stroustrup
在这里插入图片描述
上面这副图片是C++的版本更新情况,字体越大代表更新的力度越大,目前C++26预计在2026年公布。

二、C++学习书籍推荐

在这里插入图片描述

  • C++ Primer:主要讲解语法,经典的语法书籍,前后中期都可以看。
  • STL源码剖析:主要从底层实现的角度结合STL源码,庖丁解牛式剖析STL的实现,是侯捷老师的经典之作。
  • Effctive C++:本书也是侯捷老师翻译的,本书有⼀句评价:把C++程序员分为看过此书的和没看过此书的。

三、C++的第一个程序

在学习C语言的时候我们打印的第一个程序就是hello world!,所以我们C++的第一个程序也从它开始,C++兼容C语言绝大多数的语法,所以C语言实现的hello world!依旧可以运行,这里我们就不用C语言实现了,我们来看看C++怎么写,C++中需要把定义文件
代码后缀改为.cpp

C++:

#include <iostream>
using namespace std;int main()
{cout << "hello world!" << endl;return 0;
}

这就是C++版本的hello world!了。

运行结果:
在这里插入图片描述
刚从C语言接触到C++,这里的大部分东西,我们都看不懂,没有关系,接下来我会一一讲解。

1、命名空间namespace

C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染namespace关键字的出现就是针对这种问题的

C语言中的命名冲突:
我们知道在C语言中qsort是函数,假设我将它定义成int类型的全局变量,然后我不包含头文件<stdlib.h>,我们执行下面的代码:

#include <stdio.h>int qsort = 10;int main()
{printf("%d", qsort);return 0;
}

执行结果
在这里插入图片描述
之后我再加上头文件<stdlib.h>执行结果
在这里插入图片描述
程序就会出现这样的报错,因为函数在全局变量中发现了两个这样的变量名称,这就导致了命名冲突问题,而我们今天要讲的命名空间就是专门解决这个问题的。

注:只有将qsort定义成全局变量时,才会出现这样的错误,因为当它为局部变量时,打印的时候,程序会首先在局部域寻找变量,当它在局部域中找到后,就不会前往全局域寻找,就不会引发命名冲突了。

命名空间解决该问题的思路呢也很简单,举个生活中常见的例子,假设你家的大黄和邻居家的大黄一摸一样,而且都叫大黄,总是分不清谁是谁,解决这个问题只需要在狗的身上做个标记,比如让它戴个牌子就可以分清楚了,命名空间解决命名冲突的问题和这个类似,就是定义一个空间然后把冲突的变量,放进这个空间就可以了。

#include <stdio.h>
#include <stdlib.h>namespace qs
{int qsort = 10;
}int main()
{printf("%d",qs::qsort);return 0;
}

测试结果:
在这里插入图片描述
这里由于我们定义了一个命名空间,而访问这个空间需要一些小的操作,即用命名空间::成员名的方式访问指定命名空间中的成员。::是作用域解析运算符。

::变量名这样使用时表示全局作用域,即可以访问全局变量
在这里插入图片描述
如上图,当我放开时,它就会访问全局变量中的qsort函数。

注意:

  • 定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型
  • namespace本质是定义出⼀个这个域跟全局域各自独立,不同的域可以定义同名变量,所以qsort不再冲突了
  • namespace只能定义在全局,当然它还可以嵌套定义
  • 项目工程中多文件中定义的同名namespace会认为是⼀个namespace不会冲突
  • C++标准库都放在⼀个叫std(standard)命名空间中。(也就是我们打印程序中用到的std)。

2、命名空间的使用

编译查找⼀个变量的声明/定义时,默认只会在局部或者全局查找,不会到命名空间里面去查找。

例如:

#include <stdio.h>namespace test
{int a = 100;int b = 200;
}int main()
{printf("%d", a);return 0;
}

以上代码会出现一下错误:
在这里插入图片描述

  • 解决方案1:指定命名空间访问
#include <stdio.h>namespace test
{int a = 100;int b = 200;
}int main()
{printf("%d", test::a);return 0;
}

在这里插入图片描述

  • 解决方案2:using将命名空间中某个成员展开,项目中经常访问的不存在冲突的成员推荐这种方式
#include <stdio.h>namespace test
{int a = 100;int b = 200;
}using test::a;
int main()
{printf("%d",a);return 0;
}

在这里插入图片描述

  • 解决方案3:展开命名空间中全部成员,项目不推荐,冲突风险很大,日常小练习程序为了方便推荐使用。
#include <stdio.h>namespace test
{int a = 100;int b = 200;
}using namespace test;
int main()
{printf("%d",a);return 0;
}

在这里插入图片描述
我们的打印程序就是使用的方案3,将C++标准库全部展开了,即using namespace std;

3、头文件<iostream>是干什么的?

C++编程语言中,<iostream>是一个标准库头文件,它的主要作用是实现基本的输入输出功能,包含了输入输出流相关的定义和声明

其中定义了std::cin(标准输入流对象)相当于C语言中的scanf,定义了std::cout(标准输出流对象)相当于C语言中的printf等等。

  • std::cinistream 对象,它主要面向窄字符(narrow characters (of type char))的标准输入流
  • std::coutostream 对象,它主要面向窄字符标准输出流
  • std::endl 是⼀个函数插入输出时,相当于插入⼀个换行字符加刷新缓冲区

我们在实现第一个程序的时候发现其中有<<符号,这个操作符是流插入运算符,被用于向输出流中去插入数据,相对的>>流提取运算符,被用于从输入流中提取数据

我们还从程序中发现C++中打印时没有使用%d、%f这些符号,这是因为cout输出时会自动识别数据类型,进行相应的转换和输出,不容易出现因格式化字符串与实际数据类型不匹配而导致的错误。而C语言使用%d时,如果不小心将其他类型的数据以 %d 格式输出,可能会导致错误的结果或程序崩溃。

总结:
以上就是本期博客分享的全部内容啦!如果觉得文章还不错的话可以三连支持一下,你的支持就是我前进最大的动力!
技术的探索永无止境! 道阻且长,行则将至!后续我会给大家带来更多优质博客内容,欢迎关注我的CSDN账号,我们一同成长!
(~ ̄▽ ̄)~

相关文章:

【C++】入门基础【上】

目录 一、C的发展历史二、C学习书籍推荐三、C的第一个程序1、命名空间namespace2、命名空间的使用3、头文件<iostream>是干什么的&#xff1f; 个人主页<—请点击 C专栏<—请点击 一、C的发展历史 C的起源可以追溯到1979年&#xff0c;当时Bjarne Stroustrup(本…...

Git LFS 学习笔记:原理、配置、实践与心路历程

最近在学习 Git LFS&#xff0c;把一些零散的笔记整理成一篇博文&#xff0c;记录我的学习思路与心路历程。以下内容均为个人理解总结&#xff0c;部分尚未在生产项目中验证&#xff0c;仅供回顾与参考。 &#x1f50d; Git LFS 是什么&#xff1f;原理是什么&#xff1f; 刚接…...

SpringBoot集成oshi 查询系统数据

实现功能&#xff1a; ​​​​​​​ <!-- 获取系统信息 --><dependency><groupId>com.github.oshi</groupId><artifactId>oshi-core</artifactId><version>6.6.1</version></dependency><dependency><groupI…...

iOS Facebook 登录

iOS Facebook 登录 官方文档 SDK下载链接...

uniapp打包IOS私钥证书过期了,如何在非mac系统操作

在非Mac系统下解决uniapp打包iOS私钥证书过期的问题&#xff0c;需通过以下步骤实现&#xff1a; --- ### **一、重新生成iOS证书&#xff08;非Mac环境操作&#xff09;** 1. **生成私钥和CSR文件** 使用OpenSSL工具&#xff08;需提前安装&#xff09;生成私钥和证书签…...

Axios的使用

Axios 是一个基于 Promise 的现代化 HTTP 客户端库&#xff0c;专为浏览器和 Node.js 设计。在企业级应用中&#xff0c;它凭借以下核心优势成为首选方案&#xff1a; 一、Axios 的核心优势 特性说明Promise 支持天然支持异步编程&#xff0c;避免回调地狱拦截器机制可全局拦截…...

第八篇:系统分析师第三遍——3、4章

目录 一、目标二、计划三、完成情况四、意外之喜(最少2点)1.计划内的明确认知和思想的提升标志2.计划外的具体事情提升内容和标志 五、总结 一、目标 通过参加考试&#xff0c;训练学习能力&#xff0c;而非单纯以拿证为目的。 1.在复习过程中&#xff0c;训练快速阅读能力、掌…...

【2025-泛计算机类-保研/考研经验帖征集】

【2025-泛计算机类-保研/考研经验帖征集】 打扰您1分钟时间看下这里&#xff1a; 这是一个无偿为爱发电的项目&#xff0c;旨在收集湖南大学2025届毕业的计算机类学科同学的经验帖&#xff0c; 我将定期汇总链接&#xff0c;在校内推免群中宣传&#xff0c;为校内的学弟学妹们…...

Flink介绍——实时计算核心论文之Kafka论文详解

引入 我们通过S4和Storm论文的以下文章&#xff0c;已经对S4和Storm有了不错的认识&#xff1a; S4论文详解S4论文总结Storm论文详解Storm论文总结 不过&#xff0c;在讲解这两篇论文的时候&#xff0c;我们其实没有去搞清楚对应的流式数据是从哪里来的。虽然S4里有Keyless …...

细节:如何制作高质量的VR全景图

细节&#xff1a;如何制作高质量的VR全景图 VR全景图是通过虚拟现实和3D技术实现的全景展示方式&#xff0c;能够将实景以1:1的比例等比复刻&#xff0c;并还原到互联网上&#xff0c;使用户能够在线上游览世界&#xff0c;获得沉浸式的体验。制作高质量的VR全景图是一个复杂而…...

深度学习中的概念——元素积(哈达玛积)

元素积操作&#xff08;哈达玛积&#xff09; &#x1f522; 基本定义 矩阵的哈达玛积 对于两个同维度的矩阵&#xff1a; A [ a i j ] , B [ b i j ] A [a_{ij}], \quad B [b_{ij}] A[aij​],B[bij​] 它们的哈达玛积定义为&#xff1a; C A ∘ B 其中 c i j a i j…...

探索 Flowable 后端表达式:简化流程自动化

什么是后端表达式&#xff1f; 在 Flowable 中&#xff0c;后端表达式是一种强大的工具&#xff0c;用于在流程、案例或决策表执行期间动态获取或设置变量。它还能实现自定义逻辑&#xff0c;或将复杂逻辑委托…… 后端表达式在 Flowable 的后端运行&#xff0c;无法访问前端…...

AI语音助手 React 组件使用js-audio-recorder实现,将获取到的语音转成base64发送给后端,后端接口返回文本内容

页面效果&#xff1a; js代码&#xff1a; import React, { useState, useRef, useEffect } from react; import { Layout, List, Input, Button, Avatar, Space, Typography, message } from antd; import { SendOutlined, UserOutlined, RobotOutlined, AudioOutlined, Stop…...

《软件设计师》复习笔记(11.6)——系统转换、系统维护、系统评价

目录 一、遗留系统&#xff08;Legacy System&#xff09; 定义&#xff1a; 特点&#xff1a; 演化策略&#xff08;基于价值与技术评估&#xff09;&#xff1a; 高水平 - 低价值&#xff1a; 高水平 - 高价值&#xff1a; 低水平 - 低价值&#xff1a; 低水平 - 高价…...

学习threejs,使用EffectComposer后期处理组合器(采用RenderPass、GlitchPass渲染通道)

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.EffectComposer 后期…...

Yarn的定义?

YARN&#xff08;Yet Another Resource Negotiator&#xff09; 是 Apache Hadoop 的核心组件之一&#xff0c;负责集群的资源管理和任务调度。它的主要作用是将 Hadoop 的资源管理和作业调度/监控功能分离&#xff0c;形成一个通用的资源管理平台&#xff0c;可以支持多种计算…...

职坐标IT培训热门技术实战精讲

在数字化转型浪潮中&#xff0c;人工智能、大数据与云原生已成为驱动产业升级的核心引擎。职坐标IT培训课程以实战导向为基石&#xff0c;聚焦高薪岗位核心技术栈&#xff0c;通过拆解企业级项目案例&#xff0c;将复杂的技术理论转化为可落地的工程实践。课程模块涵盖从架构设…...

前端:uniapp框架中<scroll-view>r如何控制元素进行局部滚动

以下是使用 <scroll-view> 实现局部滚动的完整示例&#xff0c;包含动态内容、滚动控制和滚动位置监听&#xff1a; 一、基础局部滚动示例 <template><view class"container"><!-- 固定高度的滚动容器 --><scroll-view scroll-y :scroll…...

【KWDB 创作者计划】_算法篇---Stockwell变换

文章目录 前言一、Stockwell变换原理详解1.1 连续S变换定义1.2 离散S变换1.3简介 二、S变换的核心特点2.1频率自适应的时频分辨率2.1.1高频区域2.1.2低频区域 2.2无交叉项干扰2.3完全可逆2.4相位保持2.5与傅里叶谱的直接关系 三、应用领域3.1地震信号分析3.2生物医学信号处理3.…...

桌面级OTA测试解决方案:赋能智能网联汽车高效升级

一、前言 随着智能网联汽车的快速发展&#xff0c;OTA&#xff08;Over-The-Air&#xff09;技术已成为汽车软件更新和功能迭代的关键手段。为确保OTA升级的可靠性、安全性和效率&#xff0c;构建一套高效、便捷的桌面级OTA测试解决方案至关重要。 本方案基于Vector先进的软硬…...

京东物流基于Flink StarRocks的湖仓建设实践

摘要&#xff1a;本文整理自京东物流高级数据开发工程师梁宝彬先生在 Flink Forward Asia 2024 论坛中的分享。内容主要为以下四个部分&#xff1a; 1、实时湖仓探索与建设 2、实时湖仓应用 3、问题与思考 4、未来展望 今天&#xff0c;将分享的主题大纲包括&#xff1a;首先&a…...

【Test Test】灰度化和二值化处理图像

文章目录 1. 图像灰度化处理对比2. 代码示例3. 二值化处理 1. 图像灰度化处理对比 2. 代码示例 #include <opencv2/opencv.hpp> using namespace cv;int main() {Mat currentImage imread("path_to_image.jpg"); // 读取彩色图像Mat grayImage;// 将彩色图像…...

Docker快速入门

1 基本信息 1.1 基础概览 &#xff08;1&#xff09;容器与镜像 容器‌&#xff1a;轻量级的独立运行时环境&#xff0c;基于Linux的命名空间&#xff08;namespace&#xff09;和控制组&#xff08;cgroup&#xff09;技术实现资源隔离‌。容器通过镜像创建&#xff0c;每个容…...

AI 编程工具—如何在 Cursor 中集成使用 MCP工具

AI 编程工具—如何在 Cursor 中集成使用 MCP工具 这里我们给出了常用的MCP 聚合工具,也就是我们可以在这些网站找MCP服务 这是一个MCP Server共享平台,用户可以在上面发布和下载MCP Server配置。在这里可以选择你需要的MCP 服务。 如果你不知道你的mcp 对应的server 名称也不…...

航电系统通信与数据链技术分析

一、技术要点 1. 高带宽与低时延通信技术 航电系统需支持实时数据传输&#xff0c;如民航VDL2数据链采用D8PSK调制和Reed Solomon编码技术&#xff0c;传输速率达31.5Kb/s&#xff0c;并通过物理层优化减少码间串扰。新一代LDACS系统则利用L频段频谱&#xff0c;提供比传统VD…...

windwos脚本 | 基于scrcpy,只投声音、只投画面

安装scrcpy&#xff0c;scrcpy自带adb 写脚本命名为 .bat 结尾 注意这里的set "PATHD:\tools\scrcpy-win64-v3.2;%PATH%" 替换成scrcpy的安装目录 echo off :: 设置UTF-8编码 chcp 65001 > nul :: 设置标题 title 手机投屏工具:: 添加 scrcpy 路径到 PATH set &q…...

产品经理面试题与参考答案资料(2025年版)

一、技术背景与工具能力 问题1: 软件开发生命周期(SDLC)包括哪些阶段?作为产品经理,你如何参与每个阶段? 参考答案: 软件开发生命周期通常划分为需求分析、设计、开发、测试、部署和维护六个阶段。作为产品经理,你需要在...

HTML 初识

段落标签 <p><!-- 段落标签 -->Lorem ipsum dolor sit amet consectetur adipisicing elit. Fugiat, voluptate iure. Obcaecati explicabo sint ipsum impedit! Dolorum omnis voluptas sint unde sed, ipsa molestiae quo sapiente quos et ad reprehenderit.&l…...

CSS3笔记

文章目录 1.CSS的概念2.CSS的引入方式3.选择器3.1基础选择器3.1.1标签选择器3.1.2类选择器3.1.3id选择器3.1.4通配符选择器 4.画盒子5.文字控制属性5.1 字体大小-font-size5.2 字体粗细-font-weight5.3 字体倾斜-font-style5.4 行高-line-height5.5 字体族-font-family5.6 字体…...

yarn的定义

YARN是一个分布式资源管理平台&#xff0c;它通过分离资源管理和作业调度的功能&#xff0c;为Hadoop集群提供了一种高效、灵活且可扩展的方式来管理和分配计算资源。YARN的核心目标是将资源管理与作业调度/监控的功能分离&#xff0c;从而让Hadoop能够支持更多种类的计算框架&…...

CSS 美化页面(五)

一、position属性 属性值‌‌描述‌‌应用场景‌static默认定位方式&#xff0c;元素遵循文档流正常排列&#xff0c;top/right/bottom/left 属性无效‌。普通文档流布局&#xff0c;默认布局&#xff0c;无需特殊定位。relative相对定位&#xff0c;相对于元素原本位置进行偏…...

互联网大厂Java面试:微服务与分布式系统挑战

互联网大厂Java面试&#xff1a;微服务与分布式系统挑战 在互联网的大潮中&#xff0c;无数程序员怀揣着梦想&#xff0c;希望能在一线大厂找到自己的位置。今天的故事主角是马飞机&#xff0c;一位充满幽默感但技术略显水货的程序员。他来到了一家知名互联网公司参加Java开发…...

数据结构——顺序表(C语言实现)

1.顺序表的概述 1.1 顺序表的概念及结构 在了解顺序表之前&#xff0c;我们要先知道线性表的概念&#xff0c;线性表&#xff0c;顾名思义&#xff0c;就是一个线性的且具有n个相同类型的数据元素的有限序列&#xff0c;常见的线性表有顺序表、链表、栈、队列、字符串等等。线…...

FastGPT安装前,系统环境准备工作?

1.启用适用于 Linux 的 Windows 子系统 方法一&#xff1a;打开控制面板 -> 程序 -> 启用或关闭Windows功能->勾选 “适用于Linux的Vindows子系统” 方法二&#xff1a;以管理员身份打开 PowerShell&#xff08;“开始”菜单 >“PowerShell” >单击右键 >“…...

【2】CICD持续集成-k8s集群中安装Jenkins

一、背景&#xff1a; Jenkins是一款开源 CI&CD 系统&#xff0c;用于自动化各种任务&#xff0c;包括构建、测试和部署。 Jenkins官方提供了镜像&#xff1a;https://hub.docker.com/r/jenkins/jenkins 使用Deployment来部署这个镜像&#xff0c;会暴露两个端口&#xff…...

相比其他缓存/内存数据库(如 Memcached, Ehcache 等),Redis 在微服务环境中的优势和劣势是什么?

我们来比较一下 Redis 与 Memcached、Hazelcast、Ehcache 等在微服务环境下的优势和劣势。 Redis 的优势 : 丰富的数据结构 (Rich Data Structures): 优势: 这是 Redis 最显著的优势之一。除了简单的 Key-Value (字符串) 外&#xff0c;Redis 还原生支持 Lists, Sets, Sorted …...

Day53 二叉树的层序遍历

给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* T…...

mac上安装VMWare Fusion安装ubuntu系统问题

mac不能复制粘贴到虚拟机的ubuntu系统里&#xff0c;没有下载vmtools 在ubuntu系统执行命令 sudo apt update sudo apt install open-vm-tools open-vm-tools-desktop -y ubuntu 下载地址 https://cdimage.ubuntu.com/ubuntu/releases/20.04/release/...

JAVA Web_定义Servlet_处理POST请求【练习】

题目 有一个登录页面&#xff08;login.html&#xff09;&#xff0c;其登录表单的HTML代码如下&#xff1a; </form action"doLogin" method "post"> 用户名&#xff1a;<input type"text" name"userName"><br>…...

FreeRTOS任务通知

一、什么是任务通知 FreeRTOS从版本V8.2.0开始提供通知这个功能&#xff0c;每个任务都有一个32位的通知值。按照官方说法&#xff0c;使用消息通知比通过二进制信号量方式解除阻塞任务快45%&#xff0c;且更加省内存&#xff08;无需创建队列&#xff09;。 &#xff08;也就…...

NO.97十六届蓝桥杯备战|数论板块-最大公约数和最小公倍数|欧几里得算法|秦九韶算法|小红的gcd(C++)

约数和倍数 如果a 除以b 没有余数&#xff0c;那么a 就是b 的倍数&#xff0c;b 就是a 的约数&#xff0c;记作b ∣ a 。 约数&#xff0c;也称因数。 最⼤公约数和最⼩公倍数 最⼤公约数Greatest Common Divisor&#xff0c;常缩写为gcd。 ⼀组整数的公约数&#xff0c;是…...

ESP32之本地HTTP服务器OTA固件升级流程,基于VSCode环境下的ESP-IDF开发(附源码)

背景知识&#xff1a; 本实验利用编译链内Python内置的 HTTP 服务器&#xff0c;将升级包通过http发送给设备&#xff0c;实现OTA固件升级。 目录 背景知识&#xff1a; 1.创建工程 1.1 创建OTA基础工程 3.编写、修改代码 3.1 修改menuconfig配置文件 3.1.1 配置WiFi账…...

Jenkins的使用及Pipeline语法讲解

Jenkins简介 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。 什么是持续集成&#xff08;CI&#xff09;&#xff1f; CI(…...

【MySQL】初识数据库

目录 一.什么是数据库 二.数据库和数据结构的关系 三. 数据库服务器、数据库与表之间的关系 四.关系型数据库 五. SQL介绍 SQL分类 六.MySQL架构&#xff08;面试重点&#xff09; 七. 库的基本操作 1.查看数据库 2.创建数据库 字符集编码和校验&#xff08;排序&…...

Android tinyalsa库函数剖析

1. PCM 流控制函数 打开、关闭及状态检查 pcm_open(unsigned int card, unsigned int device, unsigned int flags, struct pcm_config *config) 打开指定声卡&#xff08;card&#xff09;和设备&#xff08;device&#xff09;的 PCM 流。 flags 参数确定流的方向&#xff1…...

DFS/BFS专练-搞定图论基础!(从海岛问题过渡至图论基础应用C++/C)

:: 图论基础理论 :: 紧接着&#xff0c;图论基础理论中&#xff0c;咱们讲到&#xff0c;图论的遍历主要由&#xff08;dfs与bfs决定&#xff09; 那咱们本篇博客就来聊聊dfs与bfs。 dfs&#xff08;深度优先搜索&#xff09;、bfs&#xff08;广度优先搜索&#xff09;的区别…...

2024年RIS SCI2区:自适应天鹰算法AAO,深度解析+性能实测

目录 1.摘要2.天鹰算法AO原理3.改进策略4.结果展示5.参考文献6.代码获取 1.摘要 智能电网通过集成可再生能源并管理供需动态平衡来提高效率&#xff0c;本文提出了自适应天鹰算法&#xff08;AAO&#xff09;&#xff0c;AAO使用Sigmoid因子来平衡探索和开发&#xff0c;根据迭…...

orcad csi 17.4 DRC规则设置及检查

rCAD绘制完原理图之后总是需要开启DRC检测&#xff0c;但是DRC一般都是英文版的&#xff0c;下面基于Cadence17.4 的orCAD16.6 对DRC的界面做简单的介绍 首先&#xff0c;鼠标点击原理图&#xff0c;然后再点击右上方的小勾图标 desine rules check option选项的界面 电气规…...

前端实战:基于 Vue 与 QRCode 库实现动态二维码合成与下载功能

在现代 Web 应用开发中&#xff0c;二维码的应用越来越广泛&#xff0c;从电子票务到信息传递&#xff0c;它都扮演着重要角色。本文将分享如何在 Vue 项目中&#xff0c;结合QRCode库实现动态二维码的生成、与背景图合成以及图片下载功能&#xff0c;打造一个完整且实用的二维…...

天梯赛DFS合集

1.DFS特殊输入&#xff1a;PTA | 程序设计类实验辅助教学平台 这题其他还是蛮容易&#xff0c;直接用递归即可&#xff0c;问题在于怎么输入&#xff0c;其实可以在递归到底层时输入即可&#xff0c;也就是边递归边输入&#xff0c;另外提一嘴跟这个题没什么关系的点&#xff…...