学习c++的第一天

news2026/4/3 13:38:43

目录

C++基础入门

C++ 简介

C++的特点

标准库

ANSI 标准

学习 C++

C++ 的使用

标准化

从C到C++

解读第一个C++程序

什么是命名空间?

C++ 标识符

C++ 关键字

三字符组

C++中的输入输出

注释


C++基础入门

C++ 简介

C++是一种通用的、高级的编程语言,它扩展自C语言,并添加了面向对象编程(OOP)的特性。C++由Bjarne Stroustrup于20世纪80年代初开发,旨在提供一个更强大和灵活的编程语言,适用于广泛的应用领域。

C++的特点

1. 面向对象编程:C++支持面向对象编程范式,允许开发者使用类、对象、封装、继承、多态、抽象等概念来组织和管理代码,以提高代码的可重用性、可维护性和可扩展性。

2. 高性能:C++是一种底层语言,可以直接访问计算机硬件,提供了对内存和计算资源的精细控制,因此具有很高的执行效率和速度。这使得C++在开发需要高性能的应用程序时非常有优势,如游戏引擎、图形处理和科学计算等领域。

3. 通用性:C++是一种通用编程语言,可以应用于各种不同的领域和平台,例如桌面应用程序、嵌入式系统、服务器端开发等。C++的标准库提供了丰富而强大的功能,包括容器、算法、输入输出等,使开发者能够快速构建复杂的应用程序。

4. 扩展性:C++支持面向对象和面向过程的编程风格,同时还提供了一些高级特性,如模板、泛型编程等,可以在不牺牲性能的情况下实现代码的灵活性和重用性。这使得C++成为一种非常强大的语言,能够满足各种不同的编程需求。

5. 社区支持:C++是一种广泛使用的编程语言,在全球范围内有大量的开发者和社区积极参与其中。这意味着可以轻松获取到大量的学习资源、工具和库,以及分享经验和解决问题的机会。

总之,C++是一种功能强大、灵活且通用的编程语言,适用于各种不同的应用领域。它的高性能和扩展性使其成为许多开发者首选的语言之一。然而,由于其复杂性和学习曲线较陡,它对于初学者来说可能会有一定的挑战性。

标准库

C++标准库是一组提供了常用功能和数据结构的库,它是C++编程语言的一部分,并由标准委员会定义和规范化。C++标准库分为两个主要部分:标准模板库(Standard Template Library,STL)和输入输出流库(Input/Output Stream Library)。

标准模板库(STL):

  • 容器(Containers):包括向量(vector)、链表(list)、队列(queue)、栈(stack)等数据结构,提供了各种操作和算法。
  • 算法(Algorithms):提供了排序、查找、遍历等各种算法操作,如排序算法(sort)、查找算法(find)等。
  • 迭代器(Iterators):提供了一种统一的方式来访问容器中的元素,可以实现泛型编程。
  • 函数对象(Function Objects):允许将函数作为参数传递给算法,具有更高的灵活性。
  • 其他组件:如数值处理(numeric)、字符处理(string)等。

输入输出流库:

  • 输入流(istream):用于从标准输入设备或文件中读取数据。
  • 输出流(ostream):用于向标准输出设备或文件中写入数据。
  • 文件流(fstream):用于读写文件。
  • 字符串流(stringstream):用于在内存中操作字符串。

标准库提供了丰富而强大的功能,使得开发者能够快速、高效地处理数据、进行输入输出操作以及实现各种常用算法。使用标准库可以减少开发工作量,提高代码的可重用性和可维护性。此外,C++标准库还包括其他组件,如日期时间处理、随机数生成、异常处理等,以满足不同应用场景的需求。

要使用标准库,只需包含相应的头文件并调用所需的函数或对象即可。例如,要使用向量容器,可以包含<vector>头文件,然后使用std::vector类来创建和操作向量。类似地,要使用输入输出流库,可以包含<iostream>头文件,然后使用std::cout和std::cin等对象进行输入输出操作。

总而言之,C++标准库是一组提供了常用功能和数据结构的库,它包括STL和输入输出流库,可以帮助开发者更轻松地处理数据、进行输入输出操作以及实现各种常用算法。它是C++编程中不可或缺的重要组成部分。

ANSI 标准

ANSI标准是指由美国国家标准学会(American National Standards Institute,简称ANSI)发布的标准。在C++中,ANSI标准通常用来指代ISO/IEC 14882标准,该标准定义了C++编程语言的规范。

ISO/IEC 14882标准规定了C++的语法、语义、库以及其他相关方面的规范。该标准由国际标准化组织(ISO)和国际电工委员会(IEC)联合制定,并于1998年首次发布。之后,该标准进行了多次修订和更新,最新版本为ISO/IEC 14882:2020,也被称为C++20。

ANSI标准的发布对于C++的发展和标准化起到了重要作用。C++的不同编译器和开发环境在遵循ANSI标准的同时,还可能实现一些扩展和特定功能。因此,在编写C++代码时,开发者通常会遵循ANSI标准,以确保代码的可移植性和兼容性。

需要注意的是,虽然C++标准通常使用ANSI标准来描述,但并不意味着该标准仅适用于美国。事实上,C++编程语言是一种国际化的语言,被广泛应用于全球范围的软件开发中。因此,ANSI标准实际上是一种国际标准,被全球的C++开发者所采纳和遵循。

学习 C++

学习C++需要理解其基本概念和编程范式,而不是过于深究语言的技术细节。以下是一些建议:

  • 理解 C++ 的基本概念:C++ 是一种面向对象编程语言,也支持泛型编程。因此,您需要理解类、对象、继承、多态、模板等基本概念。
  • 学习 C++ 的编程范式:C++ 支持多种编程范式,包括面向对象编程、泛型编程、函数式编程等。您需要了解这些范式的基本思想和应用场景,并根据实际需求选择合适的范式进行编程。
  • 练习编程:C++ 编程需要通过实践来掌握。您可以尝试使用 C++ 编写简单的代码,并运行和调试它们。随着经验的积累,您可以逐渐提高自己的编程水平。
  • 使用开发工具:为方便编写、测试和调试 C++ 代码,您可以选择一款适合自己的集成开发环境(IDE)。常见的 C++ 开发环境有 Visual Studio、Eclipse 等,您可以根据自己的需求选择适合自己的开发环境。
  • 参考资料:除了教程和书籍之外,还可以查阅官方文档、参考手册和博客等资料,以了解 C++ 标准库和常用库的使用方法。这些资料可以帮助您更加高效地编写代码。

总之,学习 C++ 需要不断地实践和学习,只有通过不断积累经验和知识,才能成为一名熟练的 C++ 程序员。

C++ 的使用

C++ 是一种功能强大的编程语言,广泛应用于系统软件、游戏开发、嵌入式系统等领域。下面是一些常见的 C++ 使用场景和应用:

  1. 系统软件开发:C++ 可以用于开发操作系统、编译器、数据库管理系统等底层软件。它的高性能和直接与硬件交互的能力使其成为构建高效系统软件的首选语言。

  2. 游戏开发:C++ 在游戏开发领域非常流行。许多游戏引擎和框架,如Unity、Unreal Engine等,都是使用 C++ 编写的。C++ 提供了对底层硬件的直接控制,可以实现高性能和复杂的游戏逻辑。

  3. 嵌入式系统开发:C++ 在嵌入式系统的开发中也得到广泛应用。通过使用 C++,可以方便地操作硬件,编写驱动程序和嵌入式应用程序,如嵌入式控制器、智能家居设备等。

  4. 科学计算和数值计算:C++ 提供了丰富的数学库和算法支持,使其成为进行科学计算和数值模拟的理想选择。许多科学计算软件,如MATLAB、OpenCV等,都是使用 C++ 编写的。

  5. 高性能计算:C++ 的强大性能和底层控制能力使其在高性能计算领域得到广泛应用。通过使用 C++,可以编写高效的并行计算代码,如利用多核处理器进行并行计算、使用CUDA编写GPU加速应用程序等。

  6. 金融领域:C++ 在金融领域中被广泛应用,如高频交易、算法交易和风险管理等领域。由于这些应用程序需要高效的性能和对硬件的直接控制,C++ 语言是一个合适的选择。

  7. 网络编程和服务器开发:C++ 提供了丰富的网络编程库和框架,如 Boost.Asio、Poco 等,使其成为构建高性能服务器和网络应用的首选语言。C++ 的高效性能和底层控制能力可以帮助开发者编写高效的并发和分布式网络应用程序。

  8. 图形图像处理:C++ 可以用于开发图形和图像处理应用程序,如计算机视觉、计算机图形学和人工智能领域。由于这些应用程序需要高效的计算能力和对硬件的控制,因此 C++ 是一个很好的选择。

总体而言,C++ 是一种非常灵活和强大的编程语言,适用于各种不同的应用场景。无论您是开发系统软件、游戏、嵌入式系统还是进行科学计算,C++ 都可以提供高性能和底层控制的能力,帮助您实现复杂的功能和任务。

标准化

发布时间通称备注
2020C++20, C++2aISO/IEC 14882:2020
2017C++17第五个C++标准
2017coroutines TS协程库扩展
2017ranges TS提供范围机制
2017library fundamentals TS标准库扩展
2016concurrency TS用于并发计算的扩展
2015concepts TS概念库,用于优化编译期信息
2015TM TS事务性内存操作
2015parallelism TS用于并行计算的扩展
2015filesystem TS文件系统
2014C++14第四个C++标准
2011-十进制浮点数扩展
2011C++11第三个C++标准
2010-数学函数扩展
2007C++TR1C++技术报告:库扩展
2006-C++性能技术报告
2003C++03第二个C++标准
1998C++98第一个C++标准

从C到C++

C++ 是在 C 语言的基础上进行扩展和增强而来的,它保留了 C 语言的特性,并引入了面向对象编程的概念和其他功能。而面向对象在C++中的体现就是类的机制,所以C++也称作是“带类的C语言的”。

我们不妨先从C语言的结构体说起,比如C语言代码:

struct stu
{
    int num;
    char sex;
    int math_score;
    int en_score;
    int c_score;
  
};
int main()
{
   struct stu A;
    return 0;
}

这段代码定义了一个结构体(struct),结构体名为 "stu"。结构体包含了学生的学号(num)、性别(sex)和数学、英语、C语言三门课程的成绩(math_score、en_score、c_score)。

在 main 函数中,定义了一个名为 A 的结构体变量,通过该结构体变量可以访问并操作结构体中的成员变量。

这种方式常用于将多个相关的数据项组合在一起,形成一个自定义的数据类型。可以通过定义结构体变量来访问和修改结构体成员变量的值。

对应的C++代码则为:

class stu
{
    int num;
    char sex;
    int math_score;
    int en_score;
    int c_score;
  
    int total_score()
    {
      return math_score+en_score+c_score;
    };
  
};
int main()
{
   class stu A;
    return 0;
}

这段代码定义了一个类(class),类名为 "stu"。类包含了学生的学号(num)、性别(sex)和数学、英语、C语言三门课程的成绩(math_score、en_score、c_score)。

在类中,还定义了一个私有成员函数 total_score(),用于计算学生的总分数。该函数只能在类的内部被调用。

在 main 函数中,定义了一个名为 A 的类对象,通过该对象可以访问并操作类中的成员变量和成员函数。

大家仔细对比看看,C语言里用struct定义,C++用class定义。与结构体不同,类除了可以包含成员变量,还可以包含成员函数。类的成员函数可以是公有(public)、私有(private)或保护(protected)的。公有成员函数可以被类的外部访问和调用,而私有和保护成员函数只能在类的内部被访问和调用。

所以类是 C++ 中重要的概念之一,可以实现面向对象编程(OOP),提高代码的可重用性、可维护性和可扩展性。

解读第一个C++程序

请看代码:

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

这个程序执行后的效果就是在屏幕上打印Hello, world!这句话。

也可以用 "\n" 代替以上代码里的 endl。

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << "\n";
    return 0;
}

接下来我们讲解一下上面这段程序:

首先,程序包含了头文件 iostream,该文件中定义了输入输出流对象 cin 和 cout,以及其他与流相关的函数和类。本程序使用了命名空间 std,以便直接使用 std::cout 和 std::endl。

在 main 函数中,使用 cout 对象输出 "Hello, world!" 字符串,并在字符串末尾添加换行符 endl。最后,返回整数值 0,表示程序正常退出。

该程序非常简单,但是它包含了 C++ 程序的基本结构,包括头文件、命名空间、main 函数、输出语句和返回值。

什么是命名空间?

命名空间(namespace)是 C++ 中的一个重要概念,它用于组织和管理代码中的标识符(如变量、函数、类等)。

在 C++ 中,命名空间可以被理解为一个逻辑上的容器,用来将一组相关的标识符进行分组,以避免命名冲突。通过将标识符放置在命名空间中,可以限定其作用范围,使得不同命名空间中的相同名称的标识符互不干扰。

1、命名空间可以包含其他命名空间、变量、函数、类等。它的语法形式如下:

namespace namespace_name {
    // 声明或定义标识符
}

例如:

namespace my_namespace {
    int x;
    
    void foo() {
        // 函数定义
    }
    
    class MyClass {
        // 类定义
    };
}

2、使用命名空间时,可以通过命名空间名加上作用域解析操作符 :: 来访问其中的成员。例如,假设有一个命名空间 my_namespace,其中定义了一个函数 myFunction(),可以通过以下方式调用该函数:

my_namespace::myFunction();

例如:

my_namespace::x = 42;
my_namespace::foo();
my_namespace::MyClass obj;

 为了简化代码,可以使用 using 关键字来引入命名空间中的特定标识符:

using my_namespace::x;
using my_namespace::foo;
using my_namespace::MyClass;

然后就可以直接使用这些标识符,而无需再添加命名空间限定符:

x = 42;
foo();
MyClass obj;

3、如果在程序中使用了命名空间,可以使用 using 关键字进行全局引入,以便在代码中直接使用命名空间中的标识符,而无需每次都使用完整的命名空间限定符。

例如:

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

需要注意的是,在实际编程中,为了避免潜在的命名冲突,应该谨慎使用 using 语句引入整个命名空间,而更倾向于在需要使用某个特定标识符时,使用限定符来明确指定命名空间。

C++ 标识符

在C++中,标识符是用来命名变量、函数、类、对象等程序实体的名称。标识符必须遵循以下规则:

  • 标识符可以由字母(大写或小写)、数字和下划线 _ 组成,但必须以字母或下划线开头。
  • 标识符区分大小写,因此 myVar 和 myvar 是不同的标识符。
  • C++关键字(如 int、if、while 等)不能用作标识符。
  • 标识符长度没有限制,但应保持合理,易于理解。
  • 推荐使用有意义的名称,能够描述所表示的实体。

以下是一些符合C++标识符规则的示例:

myVariable
counter
MAX_SIZE
calculateAverage
getPersonInfo

需要注意的是,在使用标识符时,应遵循良好的命名约定和编码规范,以提高代码的可读性和可维护性。 

C++ 关键字

下表列出了 C++ 中的保留字。这些保留字不能作为常量名、变量名或其他标识符名称。

asmelsenewthis
autoenumoperatorthrow
boolexplicitprivatetrue
breakexportprotectedtry
caseexternpublictypedef
catchfalseregistertypeid
charfloatreinterpret_casttypename
classforreturnunion
constfriendshortunsigned
const_castgotosignedusing
continueifsizeofvirtual
defaultinlinestaticvoid
deleteintstatic_castvolatile
dolongstructwchar_t
doublemutableswitchwhile
dynamic_castnamespacetemplate

三字符组

在 C++ 中,三字符组是由两个连续的问号 ?? 加上一个字符组成的特殊符号。当编译器遇到一个三字符组时,它将被替换为一个对应的单字符,并且这个替换操作会在预处理阶段完成。

以下是一些常见的三字符组及其替换字符:

三字符组替换
??=#
??/\
??'^
??([
??)]
??!|
??<{
??>}
??-~

例如,??= 将被替换为 #,因此下面两行代码等价:

#define MAX ??= // 定义 MAX 为 #
MAX 100      // 替换后为 # 100

C++中的输入输出

在C++中,输入输出(Input/Output,I/O)是与程序外部环境(如终端、文件等)进行数据交互的关键操作。C++提供了多种用于输入输出的工具和类库,其中最常用的是标准输入输出流(std::cin 和 std::cout)。

1、标准输入流 (std::cin):用于从终端或其他输入设备读取数据。

  • 通过 >> 操作符,可以将输入的数据存储到相应的变量中。

示例:

int num;
std::cin >> num;  // 从输入读取一个整数,并存储到 num 变量中

2、标准输出流 (std::cout):用于向终端或其他输出设备输出数据。

  • 通过 << 操作符,可以将数据输出到终端。

示例:

int result = 42;
std::cout << "The answer is: " << result << std::endl;  // 输出字符串和变量值

除了标准输入输出流之外,C++还提供了其他一些常用的输入输出类和函数:

  • 文件输入输出 (std::ifstream 和 std::ofstream):用于读写文件。
  • 字符串流 (std::istringstream 和 std::ostringstream):用于在内存中读取和写入字符串。
  • 格式化输出 (printf 和 sprintf):使用 C 风格的格式化规范输出数据。
  • 格式化输入 (scanf 和 sscanf):使用 C 风格的格式化规范读取数据。

这些输入输出工具和类库提供了丰富的功能,可以满足不同的输入输出需求。在实际使用时,应根据具体的情况选择合适的方法,并注意处理错误和异常情况,以确保输入输出操作的正确性和可靠性。

注释

在 C++ 中,注释是用于向程序中添加说明、解释或提醒的文本。C++ 支持两种注释方式:单行注释和多行注释。

1、单行注释:以 // 开头的文本为单行注释,该行之后的所有内容都被视为注释,直到行尾为止。

示例:

// 这是一个单行注释
int num = 42;  // 这也是一个单行注释

2、多行注释:以 /* 开头、以 */ 结尾的文本为多行注释,这段文本中的所有内容都被视为注释,可以跨越多行。

示例:

/*
 * 这是一个多行注释,
 * 包含了多行内容。
 */
int num = 42;  /* 这也是一段注释 */

注释是程序中非常重要的一部分,它可以方便地记录代码的意义和目的,也可以帮助其他人理解和修改代码。在编写程序时,应当养成良好的注释习惯,尽可能详细地记录程序的设计、实现和维护信息。同时,注释应该遵循简明扼要的原则,不要过多地添加无用的注释,以免干扰读者的阅读和理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1160953.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

王道p18 3.对长度为n的顺序表L,编写一个时间复杂度为 O(n)、空间复杂度为 O(1)的算法,该算法删除线性表中所有值为x的数据元素。(c语言代码实现)

视频讲解在这里&#xff08;谢谢各位大佬&#xff09; &#x1f447; p18 第三题数据结构课后算法题_哔哩哔哩_bilibili 本题代码如下 void deletex(struct sqlist* s, int x) {int k 0;int i 0;for (i 0; i < s->length; i){if (s->a[i] ! x)//只要不等于x&…

rcore 笔记 批处理系统 邓氏鱼

批处理系统 批处理系统 (Batch System) &#xff0c;它可用来管理无需或仅需少量用户交互即可运行的程序&#xff0c;在资源允许的情况下它可以自动安排程序的执行&#xff0c;这被称为“批处理作业”。 特权机制 实现特权级机制的根本原因是应用程序运行的安全性不可充分信…

Linux-----nginx的简介,nginx搭载负载均衡以及nginx部署前后端分离项目

目录 nginx的简介 是什么 nginx的特点以及功能 Nginx负载均衡 下载 安装 负载均衡 nginx的简介 是什么 Nginx是一个高性能的开源Web服务器和反向代理服务器。它的设计目标是为了解决C10k问题&#xff0c;即在同一时间内支持上万个并发连接。 Nginx采用事件驱动的异…

基于nodejs+vue啄木鸟便民维修网站设计与实现

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

树结构及其算法-二叉树节点的删除

目录 树结构及其算法-二叉树节点的删除 C代码 树结构及其算法-二叉树节点的删除 二叉树节点的删除操作稍为复杂&#xff0c;可分为以下3种情况。 删除的节点为树叶&#xff0c;只要将其相连的父节点指向NULL即可。删除的节点只有一棵子树。删除的节点有两棵子树。要删除节点…

Mysql高级操作和六大约束

一.数据库高级操作 1.1.克隆表 &#xff08;1&#xff09;克隆表&#xff0c;将数据表的数据记录生成到新的表中 方法一&#xff1a; create table test01 like KY08; #通过LIKE方法&#xff0c;复制KY08表结构生成test01 表 insert into test01 select * from KY08; #此方法…

分布式事务(再深入)——分布式事务理论基础 Java分布式事务解决方案

前言 事务(TRANSACTION)是一个不可分割的逻辑单元&#xff0c;包含了一组数据库操作命令&#xff0c;并且把所有的命令作为一个整体向系统提交&#xff0c;要么都执行、要么都不执行。 事务作为系统中必须考虑的问题&#xff0c;无论是在单体项目还是在分布式项目中都需要进行…

HAL服务整编错误处理

HAL服务整编错误处理 1、HIDL HAL服务2、HIDL HAL服务集成1》manifest.xml 配置报错2》hidl服务未启动报错3》有rc启动文件&#xff0c;没有so库报错4》SELinux权限问题5》整编译还是没有集成 或 报错 1、HIDL HAL服务 请参考下面几篇&#xff1a; 简单HIDL HAL的实现 Android系…

Ubuntu18.04LTS上安装ROS melodic

目录 前言创建source.list安装curl通过curl获取PGP公钥更新系统软件包索引安装ROS激活ROS系统空间 前言 本文参考ROS官方wiki&#xff0c;描述在Ubuntu18.04LTS上安装ROS的过程。 创建source.list sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_rele…

「更新」Macos屏幕录像工具:ScreenFlow

mac电脑屏幕截图工具哪个好&#xff1f;ScreenFlow是Mac上的一款优秀的屏幕录像软件&#xff0c;它不仅具有屏幕录制功能&#xff0c;还具有视频编辑功能。以下是对ScreenFlow的一些详细介绍&#xff1a; 首先&#xff0c;ScreenFlow可以捕获摄像机、麦克风和计算机音频&#…

一段奇葩的1024代码

入门教程、案例源码、学习资料、读者群 请访问&#xff1a; python666.cn 大家好&#xff0c;欢迎来到 Crossin的编程教室 &#xff01; 10月24号那天&#xff0c;也就是传说中的1024程序员节&#xff0c;我翻开日历的时候&#xff0c;看到一段代码&#xff1a; 说实话&#xf…

CPU就绪情况及其对虚拟机性能的影响

CPU就绪是虚拟化中的一种性能度量&#xff0c;用于指示物理CPU中的潜在问题&#xff0c;作为对系统效率的度量&#xff0c;它用于跟踪性能和资源利用率&#xff0c;并避免严重错误。为了理解它在管理虚拟机中的重要性&#xff0c;我们将探讨CPU就绪作为一种性能指标的作用。 让…

HarmonyOS(二)—— 初识ArkTS开发语言(中)之ArkTS的由来和演进

前言 在上一篇文章HarmonyOS&#xff08;二&#xff09;—— 初识ArkTS开发语言&#xff08;上&#xff09;之TypeScript入门&#xff0c;我初识了TypeScript相关知识点&#xff0c;也知道ArkTS是华为基于TypeScript发展演化而来。 从最初的基础的逻辑交互能力&#xff0c;到…

Python文件上传 【出错】

文件上传时选择相应文件&#xff0c;选择不到 需求&#xff1a;实现百度上传文件 Code # 无法选择文件 import os import time # import autoit from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChainsdriver webdriver.Chrome…

什么是文件安全

文件安全就是通过实施严格的访问控制措施和完美的权限卫生来保护您的业务关键信息不被窥探&#xff0c;除了启用和监控安全访问控制外&#xff0c;整理数据存储在保护文件方面也起着重要作用。通过清除旧的、过时的和其他垃圾文件来定期优化文件存储&#xff0c;以专注于关键业…

【51单片机】数码管与LCD1602(学习笔记)

一、静态数码管 1、数码管介绍 LED数码管&#xff1a;有多个发光二极管封装在一起的"8"字型的显示器 2、数码管引脚定义 分为&#xff1a;共阴极连接&#xff08;多&#xff09;、共阳极连接 图片仅供参考&#xff0c;以图纸为准 公共端&#xff1a;接地 > 供…

【数据结构与算法】排序二叉树的创建节点的添加和删除(附代码实现与代码讲解)

首先来了解下排序二叉树的基本概念 排序二叉树&#xff1a;任意一个根节点&#xff0c;比他的左子树中的任意节点都大&#xff0c;比他的右子树中的任意节点都小 比如下面的这个树就是排序二叉树 OK&#xff0c;在了解了这个基本概念之后&#xff0c;就可以去看下面的代码了 …

车载网络测试 - UDS诊断篇 - CAN与OSI七层模型

目录 为什么会介绍OSI七层模型&#xff1f; CAN规范与OSI模型 1、Physical Layer 1 2、Data Link Layer 2 3、Network Layer 3 & Transport Protocol Layer 4 4、Transport Protocol Layer 4 5、Session Layer 5 & Presentation Layer 6 & Application Laye…

【c++Leetcode】287. Find the Duplicate Number

问题入口 思想&#xff1a;Floyds Tortoise and Hare 这个算法除了可以检测是否有环&#xff08;问题入口&#xff09;&#xff0c;还可以用来检测重复数。当然这还需要一个慢指针才能实现。具体请点击标题跳转到原视频&#xff0c;这里是把内容再梳理一遍。如果有不对的地方…

多路转接之epoll

本篇博客介绍&#xff1a; 多路转接之epoll 多路转接之epoll 初识epollepoll相关系统调用epoll的工作原理epoll服务器编写成员变量构造函数 循环函数HandlerEvent函数epoll的优缺点 我们学习epoll分为四部分 快速理解部分概念 快速的看一下部分接口讲解epoll的工作原理手写epo…