C++入门

为什么产生cpp

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的
程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机
界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言
应运而生
1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一
种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。因此:C++是基于C语言而
产生的,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的
程序设计,还可以进行面向对象的程序设计。

cpp发展

cpp发展
C++98C++标准第一个版本,绝大多数编译器都支持,得到了国际标准化组织(ISO)和美 国标准化协会认可,以模板方式重写C++标准库,引入了STL(标准模板库)
C++03C++标准第二个版本,语言特性无大改变,主要:修订错误、减少多异性
C++05C++标准委员会发布了一份计数报告(Technical Report,TR1),正式更名 C++0x,即:计划在本世纪第一个10年的某个时间发布
C++11增加了许多特性,使得C++更像一种新语言,比如:正则表达式、基于范围for循 环、auto关键字、新容器、列表初始化、标准线程库等
C++14对C++11的扩展,主要是修复C++11中漏洞以及改进,比如:泛型的lambda表 达式,auto的返回值类型推导,二进制字面常量等
C++17在C++11上做了一些小幅改进,增加了19个新特性,比如:static_assert()的文 本信息可选,Fold表达式用于可变的模板,if和switch语句中的初始化器等
C++20自C++11以来最大的发行版,引入了许多新的特性,比如:模块(Modules)、协 程(Coroutines)、范围(Ranges)、概念(Constraints)等重大特性,还有对已有 特性的更新:比如Lambda支持模板、范围for支持初始化等
C++23制定ing

委员会差不多五年一更新-委员会主要是规定标准但是还要有相应的编译器(VS系列/g++/clang)支持所以新标准出来没那么快应用--所以更新快不代表应用的人多

但是有时会出问题例如C++0x代表不知道零几年出新标准,但是更新太多也有点难学本来就难

现在大部分都是用C++11因为他已经很稳定了

C++场景

最近以来c++一直是排名前五----TIOBE 编程语言社区排行榜

现在最主流的还是c/c++、java

于python来说,python更适合于辅助性语言-在哪都能用,用在对性能不要求的地方但不作为核心但是python为什么常年排名第一因为他用的广(人数多)但并不意味着他是主流支柱

c/c++适用于后端服务器开发(做后端的岗位最多)   

java适用于业务比较重的,java简单是他的语法简单但是他本身难

腾讯/百度/小米/网易  c++偏多

阿里/美团/小米  java偏多

字节     go python偏多

校招:招基础比较扎实的同学-比较好培养

工作领域
操作系统以及大型系统软件开发所有操作系统几乎都是C/C++写的,许多大型软件背后几乎都是C++写的,比如: Photoshop、Office、JVM(Java虚拟机)等,究其原因还是性能高,可以直接操控硬件。
服务器端开发服务器端开发比后台开发跟广泛,包含后台开发,一般对实时性要求 比较高的,比如游戏服务器、流媒体服务器、网络通讯等都采用C++开发的。
游戏开发PC平台几乎所有的游戏都是C++写的,市面上 相当多的游戏引擎都是基于C++开发的,三维游戏领 域计算量非常庞大,底层的数学全都是矩阵变换,想要画面精美、内容丰富、游戏实时性 搞,这些高难度需求无疑只能选C++语言。比较知名厂商:腾讯、网易、完美世界、巨人网 络等。
嵌入式和物联网领域就是把具有计算能力的主控板嵌入到机器装置或者电子装置的内部,能够控制这些 装置。比如:智能手环、摄像头、扫地机器人、智能音响等
数字图像处理数字图像处理中涉及到大量数学矩阵方面的运算,对CPU算力要求比较高,主要的图像处理 算法库和开源库等都是C/C++写的,比如:OpenCV、OpenGL等,大名鼎鼎的Photoshop 就是C++写的。
人工智能一提到人工智能,大家首先想到的就是python,认为学习人工智能就要学习python,这个 是误区,python中库比较丰富,使用python可以快速搭建神经网络、填入参数导入数据就 可以开始训练模型了。但人工智能背后深度学习算法等核心还是用C++写的
分布式应用在分布式领域,好些分布式框架、文件系统、中间组件等 都是C++开发的

如果后端开发困难那么可以选测试开发

那么可以错位竞争:中小厂-开发

                                  大厂-测试,运维,移动端

工作

大厂看中算法,中小厂不太注重

大三/二本/三本并且没有好的实习经历那么冲测开和客户端更有机会

大一大二冲实习

c#

微软搞出来的是为了对抗java,c#与c和c++没有关系但是c#估计不会成为主流因为他要跑在windows下(windows收钱)而公司的服务器大部分都是linux所以公司用c#的人不多,长期来看既然如此那还不如直接用java

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wangsir.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值