C++《i+1》系列文章汇总
欢迎来到 PaQiuQiu 的空间
本文为【C++《i+1》专栏目录】,方便大家更好的阅读!
🚀~写在前面~
当今计算机科学领域中最受欢迎和广泛使用的编程语言之一就是C++。C++是一种高级编程语言,具有强大的功能和广泛的应用领域,包括系统级编程、游戏开发、图形用户界面(GUI)设计、嵌入式系统和高性能计算等。
C++起源于20世纪80年代,是从C语言发展而来的。它旨在提供更多的功能并与面向对象编程(OOP)的概念相结合。C++通过引入类(class)和对象(object)的概念,使得程序的设计和组织更加模块化和可扩展。
作为一种编译型语言,C++代码在运行之前需要被编译成机器语言。这种编译方式使得C++程序具有高效性和速度优势,能够充分利用硬件资源。
以下是一些C++的重要特性:
-
强大的面向对象编程支持:C++不仅支持面向过程的编程范式,还提供了类、继承、封装和多态等面向对象的特性。这使得开发者能够更好地组织和设计程序结构,提高代码的重用性和可维护性。
-
高效的系统级编程能力:C++可以直接访问底层系统资源,并提供了丰富的系统级编程库,如文件操作、多线程处理和网络编程等。这使得C++成为开发操作系统、驱动程序和嵌入式系统等领域的首选语言。
-
高性能计算支持:C++提供了对底层硬件资源的直接控制,允许程序员精细地管理内存和计算资源。这使得C++成为开发高性能、大规模计算应用和算法的首选语言。
-
标准化和广泛的库支持:C++拥有丰富的标准库,包括容器、算法、输入输出和字符串处理等。此外,C++社区还提供了许多第三方库和框架,极大地方便了开发者的工作。
-
跨平台兼容性:C++的代码可以在多个操作系统和硬件平台上编译和运行,具有良好的可移植性。
对于想要学习C++的初学者,以下是一些建议:
-
先学习C语言基础:C++是从C语言发展而来的,掌握C语言的基本语法和概念对于学习C++非常有帮助。
-
学习面向对象编程(OOP):理解类、对象、继承和多态等OOP的概念和原则,是学习C++的关键。
-
实践编程:通过编写简单的程序来锻炼自己的编程能力,逐步掌握C++的语法和特性。
-
掌握标准库:熟悉C++的标准库函数和类,学会如何使用它们解决实际问题。
-
参与开源项目:参与开源项目可以更好地理解C++的实际应用和开发流程,并提高自己的编程能力。
本文是C++《i+1》专栏的导航贴(点击链接,跳转到专栏主页,欢迎订阅,持续更新…)。
专栏介绍:根据自己学习C++一路走来的心路历程,以及在工作和学习过程中对C++的不断思考和总结,详细阐述了C++的学习路线图,并以图文并茂的方式来普及C++基础、用好C++标准库,调试过程中的排疑解难,并教会大家不断精进的要点,适合基础进阶和想不断勇攀高峰的C++开发人员!
专栏适用人群:C++软件开发人员。
📢 在做技术分享与内部交流时,从刚毕业的C++新手到工作七八年及以上的老程序员,反应都比较强烈,都表示很有价值!
📢 开发某个特性或刁钻需求时,发现C++的脚手架很少,所以熟练用好C++标准库是提高开发效率的一个重要手段!
📢 通过沟通交流及对身边同事的观察发现,很多C++开发人员在软件调试及异常排查方面都比较欠缺,甚至有时会直接影响工作效率和项目进度!
📢 对于35岁这个梗,是众多程序员的噩梦,如何安全度过或者说精进自己的编程能力,都希望有一个有效的方式!
📢 所以决定推出这方面成体系的技术专栏,希望能有效地解决大家的痛点问题!
专栏文章还在持续更新 ing…
如果文章有用,可以点赞、收藏、关注,也可以订阅专栏!
通过对项目实战问题中的技术点及相关细节进行思考、总结及整理,可以加深对关联知识点的认知和理解,可以做更进一步的归纳与提炼,将相关的技术点高效串联起来,最后形成一套属于自己的系统完整的知识体系,这样也可以更好地服务于工作实践!多多关注细节,会有更深刻的理解和认识!
🎁~文章列表~
专栏文章分以下几个部分来展开:
📢 C、C++语言基础及OOP:勿在浮沙筑高台,该部分重点介绍了基础语法糖,面向对象的一些概念和内容。
📢 标准库如何解决实际问题:C++ 标准库可以分为两部分:1、标准函数库:这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自 C 语言。2、面向对象类库:这个库是类及其相关函数的集合。该部分结合实际问题,对库里的函数做一个详细的阐述。
📢 C++软件调试及异常排查:看一个程序员水平高低,不光是编码能力,还有调试能力;该部分介绍了编程过程中的常见bug如何处理以及调试工具如何使用。
📢 优秀开源项目解读:站在巨人的肩膀上,我们会看得更远,如果想不断精进自己的编程能力,我们需要涉猎优秀的开源项目,从他们写的代码中我们可以学到很多。
📢 编程实践心得:该部分是笔者多年编程的经验总结,希望对大家有所帮助。
📢 题海战术:面试过程中,各大企业(尤其是大厂)会现场要求面试者进行编程,所以特开辟此部分,对于有需要的职场新人或在校学生进行参考。
📖 Part1 C、C++语言基础及OOP
📜 1、C++Primer第五版——习题答案详解
摘要:作为C++基础书籍中的经典著作之一,是新手入门必看的书;温故而知新,做好课后答案,及时消化巩固所学的知识,打好基础。
📜 2、C++深、浅拷贝
摘要:C++中类的拷贝有两种:深拷贝,浅拷贝:当出现类的等号赋值时,即会调用拷贝函数。
📜 3、C++类模板template中的typename使用方法
摘要:作为C++中的关键字,一起揭开typename的神秘面纱。
📖 Part2 标准库如何解决实际问题
📜 1、版本兼容问题
摘要:std::basic_string::stoi,字符串转数字。
📜 2、查找特定元素
摘要:std::find_if函数在C++中的实际使用案例非常广泛。
📖 Part3 C++软件调试及异常排查
📜 1、Windows下内存泄漏排查系列
Windows下内存泄漏排查——系列1
Windows下内存泄漏排查——系列2
Windows下内存泄漏排查——系列3
摘要:内存泄漏是各类缺陷中十分棘手的一种,对系统的稳定运行威胁较大。当动态分配的内存在程序结束之前没有被回收时,则发生了内存泄漏。由于系统软件,如操作系统、编译器、开发环境等都是由C/C++语言实现的,不可避免地存在内存泄漏缺陷,特别是一些在服务器上长期运行的软件,若存在内存泄漏则会造成严重后果,例如性能下降、程序终止、系统崩溃、无法提供服务等。所以,本系列文章从概念、根源、定位、处理以及避免几个方面去深入讲解,希望能给大家带来帮助。
📖 Part4 优秀开源项目解读
待更新...
📖 Part5 编程实践心得
📜 1、for循环中return
摘要:将return语句放在for循环中可能会导致代码不可预测、难以理解和维护。在大多数情况下,推荐使用for循环用于执行重复操作,而将返回值的逻辑放在循环之外。
📜 2、VC中易混淆的几个概念
VC中易混淆的几个概念(一)
摘要:VC中对于对话框的创建和关闭,消息的发送接收,往往涉及到很多函数,初学者往往很容易搞混,导致出现一些列问题,本系列文章针对这些概念进行区分,以更好的做好界面设计。
📖 Part6 题海战术
待更新...
📝~写在后面~
C++是一种功能强大且广泛应用的编程语言。无论是初学者还是有经验的开发者,都值得深入学习和掌握C++,以便在各种领域中构建高质量的应用程序。
此外,所有文章中提到的代码都可在仓库中找到,欢迎各位fork或star哦,也诚邀有精力或有兴趣的小伙伴一起加入运营和维护,让C++学习不再那么孤单~
期待再次来到 PaQiuQiu 的空间
欢迎一起加油进步哦~
愿不负韶华,在C++的海洋里尽情的遨游吧,我们这群追风少年!
相关文章:
C++《i+1》系列文章汇总
欢迎来到 PaQiuQiu 的空间 本文为【C《i1》专栏目录】,方便大家更好的阅读! 🚀~写在前面~ 当今计算机科学领域中最受欢迎和广泛使用的编程语言之一就是C。C是一种高级编程语言,具有强大的功能和广泛的应用领域,包括系统级编程、游…...
GEE:通过将 Landsat 5、7、8、9 的 C02 数据集合并起来,构建 NDVI 长时间序列
作者:CSDN @ _养乐多_ 本文记录了在 Google Earth Engine(GEE)平台上,将 Landsat-5、Landsat-7、Landsat-8 和 Landsat-9 的数据合成为一个影像集合,并生成 NDVI(归一化植被指数)的时间序列的代码。 代码封装成了函数,方便调用,结果如下图所示, 在实际应用中,可能…...
Visual Studio 中文注释乱码解决方案
在公司多人开发项目中经常遇到拉到最新代码,发现中文注释都是乱码,很是emjoy..... 这是由于编码格式不匹配造成的,如果你的注释是 UTF-8 编码,而文件编码是 GBK 或者其他编码,那么就会出现乱码现象。一般的解决办法是…...
如何将本地websocket发布至公网并实现远程访问?
本地websocket服务端暴露至公网访问【cpolar内网穿透】 文章目录 本地websocket服务端暴露至公网访问【cpolar内网穿透】1. Java 服务端demo环境2. 在pom文件引入第三包封装的netty框架maven坐标3. 创建服务端,以接口模式调用,方便外部调用4. 启动服务,出现以下信息表示启动成功…...
android ffmpeg
参考 1、ijkplayer 2、GitHub - tanersener/mobile-ffmpeg: FFmpeg for Android, iOS and tvOS. Not maintained anymore. Superseded by FFmpegKit. https://github.com/mucephi/ffplay/tree/main GitHub - mandroidstudy/FFPlayer: 基于FFmpeg的播放器 视频缓存库&#…...
初学剪辑者找视频素材就上这6个网站
视频剪辑必备的6个素材网站,高清无水印,还可以免费下载,无版权限制,赶紧收藏起来! 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky 菜鸟图库网素材非常丰富,网站主要以设计类素材为主&#…...
C/C++---------------LeetCode第2824. 统计和小于目标的下标对数目
统计和小于目标的下表对数目 题目及要求暴力枚举双指针在main内使用 题目及要求 给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target ,请你返回满足 0 < i < j < n 且 nums[i] nums[j] < target 的下标对 (i, j) 的数目。 示例 1&…...
【深度学习】因果推断与机器学习
2023年初是人工智能爆发的里程碑式的重要阶段,以OpenAI研发的GPT为代表的大模型大行其道,NLP领域的ChatGPT模型火爆一时,引发了全民热议。而最新更新的GPT-4更是实现了大型多模态模型的飞跃式提升,它能够同时接受图像和文本的输入…...
HTTPS攻击怎么防御?
HTTPS 简介 超文本传输安全协议( HTTPS )是一种通过计算机网络进行安全通信的传输协议。HTTPS 经由 HTTP 进行通信,但利用 SSL/TLS 来加密数据包。 HTTPS 开发的主要目的,是提供对网站服务器的身份认证,保护交换数据的…...
kubernetes|云原生|Deployment does not have minimum availability 的解决方案(资源隐藏的由来)
前言: 最近在部署prometheus的过程中遇到的这个问题,感觉比较的经典,有必要记录一下。 现象是部署prometheus主服务的时候,看不到pod,只能看到deployment,由于慌乱,一度以为是集群有毛病了&am…...
2023.11.22 IDEA Spring Boot 项目热部署
目录 引言 操作步骤 1. 在 pom.xml 中添加热部署框架支持 2. Setting 开启项目自动编译 3. 以后创建的新项目进行同步配置 4. 重复 配置 步骤2 的内容 5. 开启运行中的热部署 引言 Spring Boot 的热部署是一种在项目正在运行的时候修改代码,却不需要重新启动…...
CentOS rpm安装Nginx和配置
CentOS rpm安装Nginx和配置 官方下载地址: http://nginx.org/en/download.html 介绍 Nginx(“engine x”)是一款由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 rpm包安装 #安装nginx,…...
【pandas】数据透视表【pivot_table】
pivot_table pandas的pivot_table函数是一个非常有用的工具,用于创建一个数据透视表,这是一种用于数据总结和分析的表格形式。 以下是pivot_table的基本语法: pandas.pivot_table(data, valuesNone, indexNone, columnsNone, aggfuncmean,…...
ubuntu22.04中ros2 安装rosbridge
ros2 启动rosbridge: 要启动ROS2中的rosbridge,需要先安装ROS2的rosbridge_suite软件包。使用以下命令安装: 更新过可忽略 sudo apt-get update安装命令 sudo apt-get install ros--rosbridge-suite 注意: 将替换为正在使用的R…...
不单一的错误!如何修复Windows 10上“未安装音频输出设备”的错误
许多Windows 10用户,尤其是那些使用HP或Dell笔记本电脑和PC的用户,都会遇到一个错误,上面写着“未安装音频输出设备”。这意味着你无法收听计算机上的任何声音,这让你很难放松,也很难完成工作。 错误通常会在系统托盘中的音频控制旁边显示一个红十字符号。 在这篇文章中…...
winlogbeat采集windows日志
下载链接 https://www.elastic.co/cn/downloads/past-releases/winlogbeat-7-16-2 配置文件 # ---------------------------- Elasticsearch Output ---------------------------- output.elasticsearch:# Array of hosts to connect to.hosts: ["192.168.227.160:9200&…...
关于ElectronVue3中集成讯飞星火AI
前言:我的最终目的是为了在QQ上集成一个AI机器人,因此在这里先实现一个简单的集成 先上效果图 总体还是很简单的,我在调用websock获取回复内容的基础上另外集成了一个事件总线,让我们在调用获取消息的时候能够更加方便快捷 工具代…...
初识JVM(简单易懂),解开JVM神秘的面纱
目录 一、什么是JVM(Java虚拟机)? 二、JVM的功能 三、JVM的功能-即时编译 四、常见的JVM 五、JVM的组成 五、JVM的工作流程 参考资料 一、什么是JVM(Java虚拟机)? 在Java的世界里,Java虚…...
Open3D (C++) 计算两点云之间的最小距离
目录 一、 算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、 算法原理 Open3D中ComputePointCloudDistance函数提供了计算从源点云到目标点云的距离的方法,计算点云的距离。也…...
51单片机演奏兰亭序
使用开发板为普中51-实验板 普中-2 时钟频率:11.001081MHZ 演示视频: 【51单片机演奏兰亭序】 https://www.bilibili.com/video/BV12G411D7uK/?share_sourcecopy_web&vd_source0f48f7cc0fef720b95e067122ac83437 源码如下: 数组较大&a…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
