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

【C++干货基地】namespace超越C语言的独特魅力(文末送书)


在这里插入图片描述

🎬 鸽芷咕:个人主页

 🔥 个人专栏: 《C++干货基地》《粉丝福利》

⛺️生活的理想,就是为了理想的生活!

引入

  哈喽各位铁汁们好啊,我是博主鸽芷咕《C++干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的城市有没有这种实惠又全面的零食基地呢?C++ 本身作为一门篇底层的一种语言,世面的免费课程大多都没有教明白。所以本篇专栏的内容全是干货让大家从底层了解C++,把更多的知识由抽象到简单通俗易懂。

⛳️ 推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。

文章目录

  • 引入
  • ⛳️ 推荐
  • 一、C++的发展历史
    • 1.1 C/C++的市场份额
    • 1.2 编程语言的历史走向
        • 1. Top 10 Tiobe指数走向 (2002-2023)
        • 2. 编程语言历史排名(1998 - 2023)
        • 3. 编程语言“名人榜” (2003 - 2022)
    • 1.3 C++工作领域
  • 二、命名空间的概念
    • 2.1 命名空间的创建
    • 2.2 命名空间的使用
        • 域作用限定符
        • 域的扩展
    • 2.1 std命名空间的细节
        • 命名空间可以重名吗?
        • 命名空间的展开
  • 三、C/C++图书推荐
      • 3.1 内容简介
      • 3.2 图书目录
    • 3.3 购买链接
  • 四、粉丝福利

一、C++的发展历史

C++又叫Cplusplus 其实就是C语言的升级版啦,是,Bjarne Stroustrup博士 在1982年在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为为了表达该语言与C语言的渊源关系,命名为C++。

  • 所以我们说C++ 是 C语言的升级版,下面我们就来看C++究竟升级了那些部分吧?

1.1 C/C++的市场份额

我们大家都知道 世面上最火的俩门语言分别是 java 和 C/C++ 而C/C++ 2022的份额加起来甚至超过了%20还多。一度成为年度最热语言

在这里插入图片描述

1.2 编程语言的历史走向

1. Top 10 Tiobe指数走向 (2002-2023)

在这里插入图片描述

2. 编程语言历史排名(1998 - 2023)

在这里插入图片描述

3. 编程语言“名人榜” (2003 - 2022)

在这里插入图片描述

上图数据来自TIOBE编程语言社区近几年的排行榜,在30多年的发展中,C/C++几乎一
致稳居前5。

🔥 注意:排名不能说明那个语言好,那个不好,每门编程语言都有适应自己的应用场景。

1.3 C++工作领域

  1. 操作系统以及大型系统软件开发

所有操作系统几乎都是C/C++写的,许多大型软件背后几乎都是C++写的,比如:
Photoshop、Office、JVM(Java虚拟机)等,究其原因还是性能高,可以直接操控硬件。

  1. 服务器端开发

后台开发:主要侧重于业务逻辑的处理,即对于前端请求后端给出对应的响应,现在主流采
用java,但内卷化比较严重,大厂可能会有C++后台开发,主要做一些基础组件,中间件、
缓存、分布式存储等。服务器端开发比后台开发跟广泛,包含后台开发,一般对实时性要求
比较高的,比如游戏服务器、流媒体服务器、网络通讯等都采用C++开发的。

  1. 游戏开发

PC平台几乎所有的游戏都是C++写的,比如:魔兽世界、传奇、CS、跑跑卡丁车等,市面上
相当多的游戏引擎都是基于C++开发的,比如:Cocos2d、虚幻4、DirectX等。三维游戏领
域计算量非常庞大,底层的数学全都是矩阵变换,想要画面精美、内容丰富、游戏实时性
搞,这些高难度需求无疑只能选C++语言。比较知名厂商:腾讯、网易、完美世界、巨人网
络等。

  1. 嵌入式和物联网领域

嵌入式:就是把具有计算能力的主控板嵌入到机器装置或者电子装置的内部,能够控制这些
装置。比如:智能手环、摄像头、扫地机器人、智能音响等。
谈到嵌入式开发,大家最能想到的就是单片机开发(即在8位、16位或者32位单片机产品或者
裸机上进行的开发),嵌入式开发除了单片机开发以外,还包含在soc片上、系统层面、驱动
层面以及应用、中间件层面的开发。
常见的岗位有:嵌入式开发工程师、驱动开发工程师、系统开发工程师、Linux开发工程
师、固件开发工程师等。
知名的一些厂商,比如:以华为、vivo、oppo、小米为代表的手机厂;以紫光展锐、乐鑫为
代表的芯片厂;以大疆、海康威视、大华、CVTE等具有自己终端业务厂商;以及海尔、海
信、格力等传统家电行业。
随着5G的普及,物联网(即万物互联,)也成为了一种新兴势力,比如:阿里lot、腾讯lot、京
东、百度、美团等都有硬件相关的事业部。

  1. 数字图像处理

数字图像处理中涉及到大量数学矩阵方面的运算,对CPU算力要求比较高,主要的图像处理
算法库和开源库等都是C/C++写的,比如:OpenCV、OpenGL等,大名鼎鼎的Photoshop
就是C++写的。

  1. 人工智能

一提到人工智能,大家首先想到的就是python,认为学习人工智能就要学习python,这个
是误区,python中库比较丰富,使用python可以快速搭建神经网络、填入参数导入数据就
可以开始训练模型了。但人工智能背后深度学习算法等核心还是用C++写的。

  1. 分布式应用

近年来移动互联网的兴起,各应用数据量业务量不断攀升;后端架构要不断提高性能和并发
能力才能应对大信息时代的来临。在分布式领域,好些分布式框架、文件系统、中间组件等
都是C++开发的。对分布式计算影响极大的Hadoop生态的几个重量级组件:HDFS、
zookeeper、HBase等,也都是基于Google用C++实现的GFS、Chubby、BigTable。包括分
布式计算框架MapReduce也是Google先用C++实现了一套,之后才有开源的java版本。

除了上述领域外,在:科学计算、浏览器、流媒体开发、网络软件等都是C++比较适合的场景,
作为一名老牌语言的常青树,C++一直霸占编程语言前5名,肯定有其存在的价值。

二、命名空间的概念

说了这么多那么我们今天就来介绍一下 C++ 的学习都说C++是C语言的升级版毕竟都叫 Cplusplus 了没点本事怎么敢这样叫呢?

C++ 第一个升级的地方就是命名空间的概念,以往我们在写C语言程序的时候的变量和函数都是大量存在的,而C++中还有类也是大量存在这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。

比如在 有俩个业务员去负责俩个模块但是他们去的函数名都一样在自己的机器上都运行的好好的一旦把自己的代码合并到主服务器上去就出现命名冲突的问题导致程序崩溃。

  • 所以为了解决这个问题C++ 中就有了命名空间的概念,这也是我们要学的第一个关键字 namespace

2.1 命名空间的创建

以往我们在定义全局变量的时候如果和库函数语言了就会导致出现命名冲突的情况

#include <stdio.h>
#include <stdlib.h>
int rand = 10;
// C语言没办法解决类似这样的命名冲突问题
// 所以C++提出了namespace来解决
int main()
{printf("%d\n", rand);return 0;
}

在这里插入图片描述

所以我们在C++ 可以使用 namespace 定义一个命名空间在这个命名空间里就相当于拿一个围栏来围起来这样在 namespace 里面就相当于一个单独的空间了。

  • 而我们在使用的时候只需要使用单独展开就可以使用了,相互之间并不冲突

2.2 命名空间的使用

命名空间的使用非常简单就直接使用关键字和命名空间名,就可以了。这这个空间里面我们可以定义变量函数,或者结构体等等是相当于一个单独的作用域。

  • 命名空间相当于在全局作用域上开辟了一片新的领土所以他与全局范围的变量并不冲突
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>namespace gugu
{int rand = 0;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};
}
域作用限定符

而我们想要使用命名空间就需要 域作用限定符 :: 这个东西了,他可以让我们访问到命名空间的的内容

  • 域作用限定符 左边事命名空间名 :: 右边是要访问的内容

🍸 代码演示:

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;namespace gugu
{int rand = 10;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};
}int main()
{cout << gugu::rand << endl;
}
域的扩展

前面说域的可能很多老铁不太明白,其实域一共有这几种

局部域
全局域
命名空间域
类域

域作用限定符 的 概念就是 从指定的域里面去访问,平常我们访问一个变量是优先 局部作用域去寻找的,然后再去全局范围进行寻找,但是用了 域作用限定符 就不一样:

  • 它会从指定范围进行寻找
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;namespace gugu
{int rand = 10;int Add(int left, int right){return left + right;}struct Node{struct Node* next;int val;};
}int main()
{int rand = 20;cout << gugu::rand << endl;
}

2.1 std命名空间的细节

命名空间可以重名吗?

这里很多人肯定以为命名空间不能重名但是在C++中其实命名空间是可以重名的:

🍸 代码演示:

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;namespace gugu
{int rand = 10;}
namespace gugu
{int x = 20;
}int main()
{int rand = 20;cout << gugu::rand << endl;
}

📑 代码结果:
在这里插入图片描述

哦豁这里大家就可以看到命名空间是可以重命名的并且不报错,这里其实是编译器吧俩段代码进行合并了。

假设我们有俩个项目需要俩个人来进行写代码,但是他们所写的项目都属于一个命名空间里面的,这时候可以重名的优势就体现出来了,他们俩个一起写的代码都会合并到同一个命名空间。

命名空间的展开

虽然命名空间很好用但是有很多人说,这每次使用起来也太麻烦了吧,每一个函数都要加 域作用限定符 。别急其实命名空间还有一种用法就是展开使用:

像我们平时写代码和进行算法竞赛的时候其实只需要将命名空间展开就好了

using namespace std; 其中 stdstd的所有C++库命名空间
using 是使用这个命名空间的意思

🍸 代码演示:

#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;int main()
{int rand = 20;cout << rand << endl;
}

using namespace std; 加上我们就可以使用全部的官方库了,但是这里要注意头文件是把代码合并过来,而展开命名空间是把这个块空间公开。

相当于是命名空间本身在全局域里面围了一块地当自己的命名空间域,现在把这块围起来的地围栏给打开了。

三、C/C++图书推荐

《高效C/C++调试》是一本精心编写的实用指南,为软件开发工程师提供了宝贵的调试技巧和知识。作者通过多年的一线经验,深入讲解了如何高效地调试软件内存故障、理解C++对象模型、阅读汇编代码等重要内容。书中还介绍了调试器插件和工具的开发,拓展了开发者的视野。无论是初学者还是有经验的开发人员,都能从本书中获得实际的指导和启发。丰富的实战例子和代码片段让读者更好地理解和应用所学知识。如果你想提升调试能力、掌握C/C++高级内容,并成为实战资质的中高级开发人员,那么这本书绝对是你的不二选择。

在这里插入图片描述

3.1 内容简介

《高效C/C++调试》是关于软件调试技术的深度探索,融合了作者的实践智慧。书中不仅指导读者如何使用专业的调试工具,还介绍了如何宏观和微观地分析问题,并**限度地发挥调试器功能。此外,书中还深入解读了调试背后的技术原理,如调试符号、内存管理及系统内核对内存的操作机制,以揭示内存管理的关键性和复杂性。 除了介绍基础概念外,本书还涵盖了许多增强调试能力的工具与插件。尽管焦点集中在C/C++,但其中的策略与技巧具有普适性,适用于多种编程语境。内容包括从内存泄漏预防调试、Linux下的eBPF和strace调试方法,到Kubernetes容器调试,再到C++20的协程与崩溃信息收集策略。 《高效C/C++调试》主要面向具有C/C++编程基础的读者,同时也非常适合对软件技术原理有深入探索兴趣的读者以及追求高效调试技巧的开发

3.2 图书目录

目    录第1章   调试符号和调试器 11.1  调试符号 11.1.1  调试符号概览 21.1.2  DWARF格式 31.2  实战故事1:数据类型的不一致 141.3  调试器的内部结构 161.3.1  用户界面 161.3.2  符号管理模块 161.3.3  目标管理模块 171.4  技巧和注意事项 211.4.1  特殊的调试符号 211.4.2  改变执行及其副作用 241.4.3  符号匹配的自动化 251.4.4  后期分析 261.4.5  内存保护 271.4.6  断点不工作 271.5  本章小结 282章   堆数据结构 292.1  理解内存管理器 302.1.1  ptmalloc 312.1.2  TCMalloc 342.1.3  多个堆 382.2  利用堆元数据 392.3  本章小结 423章   内存损坏 433.1  内存是怎么损坏的 443.1.1  内存溢出与下溢 443.1.2  访问释放的内存 453.1.3  使用未初始化的值 463.2  调试内存损坏 473.2.1  初始调查 493.2.2  内存调试工具 533.2.3  堆与栈内存损坏对比 533.2.4  工具箱 543.3  实战故事2:神秘的字节序转换 553.3.1  症状 553.3.2  分析和调试 563.3.3  错误和有价值的点 643.4  实战故事3:覆写栈变量 65 ...

3.3 购买链接

京东购买链接:《高效C/C++调试》

四、粉丝福利

  • 参与方式:关注博主、点赞收藏评论,任意评论(每人最多评论三次)

  • ⛳️本次送书1~3取决于阅读量,阅读量越多,送的越多

  • 📆 活动时间至:2023-1-23 10:00:00 | 随机抽取由博主动态公布抽奖结果

如有特别需要的同学可添加博主微信进入粉丝福利群发放福利哦!

🔥 注:活动结束后,会私信中奖粉丝的,各位注意查看私信哦!

⛳️ 文章末尾扫码加入粉丝群,不定期发放粉丝福利,各种专业书籍免费赠送

相关文章:

【C++干货基地】namespace超越C语言的独特魅力(文末送书)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…...

做一个简单的倒计时

<div>距离过年还有:<span></span></div><script>let div document.querySelector("div");let span document.querySelector("span");// 获取未来时间戳let future new Date("2024-2-10 00:00:00");// 获取当下…...

微服务环境搭建:docker+nacos单机

nacos需要连接mysql&#xff0c;持久化相关配置。 1. 部署好mysql后&#xff0c;新建nacos数据库然后初始化nacos脚本 -- -------------------------------------------------------- -- 主机: 192.168.150.101 -- 服务器版本: …...

Opencv轮廓检测运用与理解

目录 引入 基本理解 加深理解 ①比如我们可以获取我们的第一个轮廓,只展示第一个轮廓 ②我们还可以用一个矩形把我们的轮廓给框出来 ③计算轮廓的周长和面积 引入 顾名思义,就是把我们图片的轮廓全部都描边出来 也就是我们在日常生活中面部识别的时候会有一个框,那玩意就…...

Java 8的新特性简单分享(后续有系列篇~敬请期待)

Java 8的新特性分享 Java 8是Java语言迎来的一次革命性的更新&#xff0c;引入了众多强大的新特性&#xff0c;使得Java开发变得更加现代化和便捷。在这篇博客中&#xff0c;我们将深入探讨Java 8的一些主要特性&#xff0c;并通过丰富的案例演示展示它们的用法。 1. Lambda表…...

计算机网络-计算机网络的概念 功能 发展阶段 组成 分类

文章目录 计算机网络的概念 功能 发展阶段总览计算机网络的概念计算机网络的功能计算机网络的发展计算机网络的发展-第一阶段计算机网络的发展-第二阶段-第三阶段计算机网络的发展-第三阶段-多层次ISP结构 小结 计算机网络的组成与分类计算机网络的组成计算机网络的分类小结 计…...

246.【2023年华为OD机试真题(C卷)】分月饼(动态规划-JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-分月饼二.解题思路三.题解代码Python题解代码J…...

java大数据hadoop2.9.2 Linux安装mariadb和hive

一、安装mariadb 版本centos7 1、检查Linux服务器是否已安装mariadb yum list installed mariadb* 2、如果安装了&#xff0c;想要卸载 yum remove mariadb rm -rf /etc/my.cnf rm -rf /var/lib/mysql 才能完全删除 3、安装mariadb 在线网络安装 yum install -y mari…...

Docker部署微服务问题及解决

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位大四、研0学生&#xff0c;正在努力准备大四暑假的实习 &#x1f30c;上期文章&#xff1a;Docker容器命令案例&#xff1a;Nginx容器修改&#xff0c;Redis容器持久化 &#x1f4da;订阅专栏&#xff1a;Docker 希望文章…...

Android: alarm定时很短时,比如500ms,测试执行mPowerManager.forceSuspend()后,系统不会suspend

参考文档&#xff1a; https://blog.csdn.net/weixin_35691921/article/details/124961404 Android: alarm定时很短时&#xff0c;比如500ms&#xff0c;然后执行mPowerManager.forceSuspend()后&#xff0c;系统不会suspend&#xff0c;原因分析&#xff1a; static int ala…...

一个简单好用的C语言单元测试框架-Unity

Unity简介&#xff1a; Unity是一个用于C语言的轻量级单元测试框架。它由Throw The Switch团队开发&#xff0c;旨在简化嵌入式系统的单元测试。单元测试中单元的含义&#xff0c;单元就是人为规定的最小的被测功能模块&#xff0c;如C语言中单元指一个函数&#xff0c;Java里…...

ubuntu系统 vscode 配置c/c++调试环境

文章目录 1.安装插件2.目录结构3.cmake tools配置 1.安装插件 c/c插件 cmake cmake tools插件 2.目录结构 . ├── build ├── CMakeLists.txt ├── demo │ └── main.cpp ├── image.png ├── src │ ├── add.cpp │ └── add.hpp └── vsdebug.…...

算法练习-A+B/财务管理/实现四舍五入/牛牛的菱形字符(题目链接+题解打卡)

难度参考 难度&#xff1a;简单 分类&#xff1a;熟悉OJ与IDE的操作 难度与分类由我所参与的培训课程提供&#xff0c;但需要注意的是&#xff0c;难度与分类仅供参考。以下内容均为个人笔记&#xff0c;旨在督促自己认真学习。 题目 A B1. A B - AcWing题库财务管理1004:财…...

XSS语句

XSS测试语句 在测试网站是否存在XSS漏洞时&#xff0c;应该输入一些标签如<,>输入后查看网页源代码是否过滤标签&#xff0c;如果没过滤&#xff0c;很大可能存在XSS漏洞。 <h5>1</h5> <span>1</span> <SCRIPT>alert(document.cookie)&l…...

AD导出BOM表 导出PDF

1.Simple BOM: 这种模式下&#xff0c;最好在pcb界面&#xff0c;这样的导出的文件名字是工程名字&#xff0c;要是在原理图界面导出&#xff0c;会以原理图的名字命名表格。 直接在菜单栏 报告->Simple BOM 即可导出物料清单&#xff0c;默认导出 comment pattern qu…...

linux 的nobody是什么用户? 对安全有没有影响?

目 录 一、前言&#xff1a;nobody是不是可疑用户&#xff1f; 二、Linux系统中的nobody用户&#xff1f; 二、有nobody用户存在&#xff0c;安全吗&#xff1f; 一、前言&#xff1a;nobody是不是可疑用户&#xff1f; 在前面一篇文章“Linux安全问题,如何查看哪…...

2024年华数杯国际数学建模B 光伏电(Problem B: Photovoltaic Power)完整思路以及源代码分享

背景 中国的电力构成包括传统的能源发电&#xff08;如煤炭、石油和天然气&#xff09;、可再生能源发电 &#xff08;如水力发电、风能、太阳能和核能&#xff09;和其他形式的电力。这些发电方式在满足中 国巨大的电力需求方面发挥着至关重要的作用。根据最新数据&#xf…...

在 Spring MVC 中,用于接收前端传递的参数的注解有以下几种

目录 RequestParam&#xff1a; PathVariable&#xff1a; RequestBody&#xff1a; RequestHeader&#xff1a; CookieValue&#xff1a; RequestParam&#xff1a; 用于获取请求参数的值。可以指定参数名称和默认值。示例代码&#xff1a; GetMapping("/users&q…...

K8s常用命令

查看集群各节点的状态 部署应用 删除一个service服务 查询service服务列表 kubectl get services 查看网络资源 kubectl get svc pod 创建一个namespace kubectl create namaspace namespace名称 创建一个pod 通常不需要创建pod 查看pod kubectl get pods kube…...

MySQL的基本操作

目录 序言 一、SQL语句&#xff08;Structured Query Language&#xff09; 1.1 SQL简介 1.2 SQL语句的分类 1.3 SQL语句的书写规范 二、数据库操作 2.1 查看库 2.2 创建库 2.3 切换库 2.4 删除库 三、MySQL字符集 3.1 MySQL字符集的分类 3.2 UTF8和UTF8MB4的区别…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台

🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发&#xff0c;数据库mysql&#xff0c;前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...