【C++开篇】

news2024/12/23 3:59:13

首先初阶的数据结构相信大家已经学习的差不多了,关于初阶数据结构排序的相关内容的总结随后我也会给大家分享出来。C语言和C++有许多相同的地方,但也有许多不相同的地方。接下来的C++部分,我们主要是针对C++与C语言不同的地方来与大家进行分享。其中包括C++语法,STL,高阶数据结构。

好了,步入正题。今天我们这篇博客,先来大致介绍一下C++。

1. C++的发展史

时间阶段内容
1998年    

C++98

C++官方第一个版本,绝大多数编译器都支持,得到了国际标准化组织(ISO)和协会认可,以模板方式重写C++标准库,引入了STL(标准模板库)
2003年  C++03 C++标准第二个版本,语言特性无大改变,主要:修订错误、减少多异性
2011年   C++11增加了许多特性,使得C++更像一种新语言,比如:正则表达式、基于范围for循环、auto关键字、新容器、列表初始化、标准线程库等
2014年   C++14   对 C++11 的扩展,主要是修复 C++11 中漏洞以及改进,比如:泛型的 lambda 表达式, auto 的返回值类型推导,二进制字面常量等
2017年  C++17   在 C++11 上做了一些小幅改进,增加了 19 个新特性,比如: static_assert() 的文 本信息可选,Fold 表达式用于可变的模板, if 和 switch 语句中的初始化器等
2020年   C++20 自 C++11 以来最大的发行版 ,引入了许多新的特性,比如: 模块 (Modules) 、协 程 (Coroutines) 、范围 (Ranges) 、概念 (Constraints) 等重大特性,还有对已有特性的更新:比如Lambda 支持模板、范围 for 支持初始化等
2023年   C++23   C++23是一个小版本的更新,进一步完善和改进现有特性,增加了if consteval、falt_map,import std导入标准库等
2026年   C++26 

 制定ing

2.C++ 的参考文档

https://legacy.cplusplus.com/reference/

http:// https://zh.cppreference.com/w/cpp

http:// https://en.cppreference.com/w/

        第一个链接不是C++官网文档,标准也只有更新到C++11,但是以头文件形式呈现,内容比较易懂好懂。后两个链接分别是C++官网文档和英文版,信息很全,更新到了最新的C++标准,但是相比第一个不那么容易看,几个文档各有优势,我们结合者使用。

3.C++重要性

TIOBE排行榜是根据互联网上有经验的程序员,课程和第三方厂商的数量,并使用搜索引擎以及Wikipedia,Amazon,YouTube和Baidu(百度)统计出来的排名数据,只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量的多少。

以下是当前最新的语言排行榜

4.C++在工作领域中的应用

C++ 的应用领域服务器端,游戏(引擎),机器学习引擎,音视频处理,嵌入式软件,电信设备,金融应用,基础库,操作系统,编译器,基础建构,基础工具,硬件交互等很多方面都有。

  1. 大型系统软件的开发。如编译器,数据库,操作系统,浏览器等等。
  2. 音视频处理。常见的音视频开源库和方案有FFmpeg,WebRTC,Mediasoup,ijkplayer,音视频已开展最主要的技术栈是C++。
  3. PC客户端的开发。一般是开发Windows上的桌面软件。比如WPS之类的,技术栈的话一般是C++和QT,QT是一个跨平台的C++图形用户界面程序。
  4. 服务端开发。各种大型应用网络连接的高并发后台服务。这块Java也比较多,C++主要用于性能要求比较高的地方。如:游戏服务,流媒体服务,量化高频交易服务等。
  5. 游戏引擎开发。很多游戏引擎就是用C++开发的有些字引擎的开发要掌握C++基础和数据结构,学习图形学知识,掌握游戏引擎和框架,了解引擎实现,引擎代码可以学习UE4,Cocos2d-x等开源引擎实现。
  6. 嵌入式开发。嵌入式开发具有计算能力的主板嵌入到机器装置或者电子装置的内部,通过软件能够控制这些装置。比如:手环,摄像头,扫地机器人,智能音箱,门禁系统,车载系统等等。粗略一点嵌入式开发主要分为嵌入式应用和嵌入式驱动开发。
  7. 机器引擎学习。机器学习底层的很多算法都是C++实现的,上层使用python封装起来。如果你只想准备数据训练模式,那么学会python基本上就够用了,如果你想做机器学习系统的开发,那么要学会C++。
  8. 测试开发/测试。每个公司研发团队,有研发就有测试,测试分为测试开发和功能测试,测试开发一般是使用一些测试工具,设计测试用例,然后写一些脚本进行自动化测试,性能测试等,有些还需要自行研发一些测试工具。功能测试主要是根据产品的功能,设计测试用例,然后手动的方式进行测试。

5.C++的学习建议 

        C++无疑是最具影响力之一。作为一种强大且灵活的语言,C++在软件开发、游戏制作、系统编程等领域都有着广泛的应用。然而,对于初学者或希望提高技能的程序员来说,C++的复杂性往往令人望而却步。本文旨在探讨有效的学习方法,帮助大家高效率的掌握C++。

C++难学吗?

  • 首先在这里告诉大家,C++是一个相对于难学难精的语言,相比于其他的语言的学习难度要大一些。这里有历史包袱的问题,也有语言本身的设计和发展的一些问题。当然坚持,多练,多深究,多理解。与此同时多接触一些别人的学习分享也会得到很好的效果。
  • 在这里,我建议把我博客中分享的代码都尽量的实现练习一遍,理解对应的知识。除此之外,可以摘录出重难点,多参考一些经典的书籍。

6. 第一个C++程序

哈哈,在这里大家可能就有想到刚开始学C语言了。

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

在这里,和我一样的刚开始学的同学就会问  头文件咋没<stdio.h>了?using namespace std是干嘛呢的?咋没printf()了?cout和endl又是啥?

好喽,今天就先开个头,分享到这里,后续我会慢慢的给大家分享到的。

 如有错误,还望指出!!!

关注博主,优质内容不断更新!!!

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

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

相关文章

量子变分算法 (python qiskit)

背景 变分量子算法是用于观察嘈杂的近期设备上的量子计算效用的有前途的候选混合算法。变分算法的特点是使用经典优化算法迭代更新参数化试验解决方案或“拟设”。这些方法中最重要的是变分量子特征求解器 (VQE)&#xff0c;它旨在求解给定汉密尔顿量的基态&#xff0c;该汉密尔…

这是一篇vue3 的详细教程

Vue 3 详细教程 一、Vue 3 简介 Vue.js 是一款流行的 JavaScript 前端框架&#xff0c;用于构建用户界面。Vue 3 是其最新版本&#xff0c;带来了许多新特性和性能优化&#xff0c;使开发更加高效和灵活。 二、环境搭建 安装 Node.js 前往Node.js 官方网站下载并安装适合你…

WPF+MVVM案例实战(六)- 自定义分页控件实现

文章目录 1、项目准备2、功能实现1、分页控件 DataPager 实现2、分页控件数据模型与查询行为3、数据界面实现 3、运行效果4、源代码获取 1、项目准备 打开项目 Wpf_Examples&#xff0c;新建 PageBarWindow.xaml 界面、PageBarViewModel.cs ,在用户控件库 UserControlLib中创建…

WASM 使用说明23事(RUST实现)

文章目录 1. wasm是什么1.1 chatgpt定义如下:1.2 wasm关键特性&#xff1a; 2. wasm demo2.1 cargo 创建项目2.2 编写code2.3 安装wasm-pack2.4 编译 3.1 html页面引用wasm代码&#xff08;js引用&#xff09;3.2 访问页面4 导入js function4.1 编写lib.rs文件&#xff0c;内容…

UML 总结(基于《标准建模语言UML教程》)

定义 UML 又称为统一建模语言或标准建模语言&#xff0c;是一种标准的图形化建模语言&#xff0c;它是面向对象分析与设计的一种标准表示。尽管UML 本身没有对过程有任何定义&#xff0c;但UML 对任何使用它的方法&#xff08;或过程&#xff09;提出的要求是&#xff1a;支持用…

【含开题报告+文档+PPT+源码】基于vue框架的东升餐饮点餐管理平台的设计与实现

开题报告 在当前信息化社会背景下&#xff0c;餐饮行业正经历着由传统线下服务模式向线上线下深度融合的转变。随着移动互联网技术及大数据应用的飞速发展&#xff0c;用户对于餐饮服务平台的需求也日益多元化和个性化。他们期望能在一个集便捷、高效、个性化于一体的平台上完…

自动化测试工具Ranorex Studio(十六)-添加新Action

在Action表中&#xff0c;有两种手动添加action的方式。 一种方法是指定Action本身&#xff08;’添加新Action’&#xff09;&#xff0c;然后分配对应的对象库条目&#xff08;在多数情况下&#xff09;。 第二种方法是直接把对象库条目拖放到Action表内&#xff0c;然后生成…

力扣 中等 2466.统计构造好字符串的方案数

文章目录 题目介绍题解 题目介绍 题解 题意&#xff1a;每次可以爬 zero 或 one 个台阶&#xff0c;返回爬 low 到 high 个台阶的方案数。 和上题337.组合总和 &#xff08;链接&#xff09;的思路一样&#xff0c;只不过是将可以爬的台阶数从数组换成了两个数&#xff08;ze…

视频美颜平台的搭建指南:基于直播美颜SDK的完整解决方案

众所周知&#xff0c;直播美颜SDK是实现视频美颜功能的核心。本文将详细解析如何基于直播美颜SDK搭建一个完整的视频美颜平台。 一、视频美颜SDK的核心功能 直播美颜SDK作为平台的技术核心&#xff0c;能够提供丰富的美颜效果和稳定的视频处理能力。通常&#xff0c;SDK具备以…

iOS AVAudioSession 详解【音乐播放器的配置】

前言 在 iOS 音频开发中&#xff0c;AVAudioSession 是至关重要的工具&#xff0c;它控制着应用的音频行为&#xff0c;包括播放、录音、后台支持和音频中断处理等。对于音乐播放器等音频需求强烈的应用&#xff0c;设计一个合理的 AVAudioSession 管理体系不仅能保证音频播放…

RabbitMQ是一个开源的消息代理和队列服务器

RabbitMQ是一个开源的消息代理和队列服务器&#xff0c;它基于AMQP&#xff08;Advanced Message Queuing Protocol&#xff0c;高级消息队列协议&#xff09;协议实现&#xff0c;同时也支持其他消息协议如STOMP、MQTT等。作为一个可靠的消息传递服务&#xff0c;RabbitMQ在分…

青少年CTF平台的基础题writeup

青少年CTF平台 1、文章管理系统 首先他这里有一个问号id&#xff0c;就想着使用mysql跑一下&#xff0c;但是windows的sqlmap很不给力&#xff0c;都不动&#xff0c;所以我后面换成了kali机来跑 跑一下就跑出了好多的数据库 第一次我使用ctftraining不出货&#xff0c;跑的一…

Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (一)

coppelia sim[V-REP]仿真实现 机器人于3D相机手眼标定与实时视觉追踪 一 标定板的制作生成标定的PDF文件PDF转为图像格式图像加载到仿真中 二 仿真场景设置加载机器人加载的控制dummy ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b48549d355d8441d8dfc20bc7ba7196…

【K8S系列】Kubernetes Pod节点CrashLoopBackOff 状态及解决方案详解【已解决】

在 Kubernetes 中&#xff0c;Pod 的状态为 CrashLoopBackOff 表示某个容器在启动后崩溃&#xff0c;Kubernetes 尝试重启该容器&#xff0c;但由于持续崩溃&#xff0c;重启的间隔时间逐渐增加。下面将详细介绍 CrashLoopBackOff 状态的原因、解决方案及相关命令的输出解释。 …

.NET Core WebApi第1讲(概念):Web基础、AJAX、JQuery

动态页面&#xff1a;数据流动 / Web服务器 / Ajax / 前后端分离 / restful风格源栈课堂一起帮https://17bang.ren/Code/261 一、Web基础 二、AJAX诞生 三、JQuery

ctfshow(262,264)--反序列化漏洞--字符串逃逸

Web262 源代码&#xff1a; index.php: error_reporting(0); class message{public $from;public $msg;public $to;public $tokenuser;public function __construct($f,$m,$t){$this->from $f;$this->msg $m;$this->to $t;} }$f $_GET[f]; $m $_GET[m]; $t $_…

虚拟现实新纪元:VR/AR技术将如何改变娱乐与教育

内容概要 在当今科技飞速发展的时代&#xff0c;虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;技术不仅让我们的娱乐体验如虎添翼&#xff0c;更为教育变革注入了新活力。这些技术的飞跃进展&#xff0c;将原本平淡无奇的场景转变为令人沉醉的沉浸…

HICP--2

在area 0的路由器只生成 area 0 的数据库&#xff0c;只在area 1 的一样。但是既在又在的生成两个 area的 LSDB 一、区域间三类LSA 在OSPF&#xff08;Open Shortest Path First&#xff09;协议中&#xff0c;区域间三类LSA&#xff08;Link-State Advertisement&#xff09…

【UE5】将2D切片图渲染为体积纹理,最终实现使用RT实时绘制体积纹理【第七篇-体积纹理绘制】

我们前几篇已经完成了渲染部分&#xff0c;现在终于开始做动态绘制功能了 之前使用的是这样一个体积雾的切片图&#xff0c;那么现在要做的就是动态编辑它 首先&#xff0c;让我们简单了解一下它是如何运作的&#xff1a; 开始绘制画布以渲染目标&#xff0c;并将材质绘制到画…

Python字幕滚动:为视频添加专业级动态效果!

Python实现由下向上滚动字幕 在数字媒体和编程领域&#xff0c;动态文本效果总能吸引观众的注意力。其中&#xff0c;滚动字幕是一种常见的视觉效果&#xff0c;经常用于视频、演示文稿和网页中。在Python中&#xff0c;我们可以通过多种方式来实现滚动字幕效果&#xff0c;比…