C与C++的区别

目录

从C语言到C++

代码改变

即将开始---STL


从C语言到C++

1980年,Bjarne Stroustrup博士着手创建一种新的语言,能够具有面向对象的程序设计特色。在当时,面向对象编程是一个新颖的概念,Stroustrup博士并不是从头开始设计新语言,而是使用C语言进行修改,而这就是C++语言。

C++是C的超集,也就是说C++是可以兼容C语言的,C++在C语言的基础上增加了许多的特性和概念,他通关关键字的方式进行实现,不过本文不重点说明C++和C语言的区别,本文只是从数据结构的角度去观测两语言之间的问题,并且说明C++的改进,从本文开始,将会在C语言的基础上开始用到C++的特性和概念去实现数据结构,这将方便我们的程序设计。

代码改变

介绍几个很明显的转变我们以后会很常用,这些可以在C语言网的C++教程中看到,如果你已经学过C++,建议你可以直接跳过本段内容,如果你对于C++还一知半解的,建议你在阅读本文的同时去翻阅C++的学习资料,两者的学习并不冲突,相反他们相辅相成。

1.头文件引用

C语言的引用头文件的方式是include名字.h的方式进行引用,而C++去掉了.h(虽然在绝大多数编译器上任然使用.h的方法也不会报错)而是改成直接引用名字即可,这里需要注意的是C++使用C语言标准时,需要在库前面添加一个c来表明这个库是来自于C语言的。

objectivec 复制代码
//C语言的方法:带.h的方式进行include
#include<stdio.h>
#include<math.h>
  
//C++的方法,直接引用即可
#include<cstdio>
#include<cmath>

2.输入与输出

C++的输入输出与C语言指定类型的不同,C++采用"流"的思路去进行输入输出设计,这样的做法可以大大简化我们的设计,但是这样的做法确是更慢,本章稍后会介绍输入输出的优化,将会重讲本内容。

objectivec 复制代码
int n; //定义n为整形
//C语言的输入输出(需要指定类型,如下指定为整形)
scanf("%d",&n);
printf("%d",n);
//C++语言的输入输出(不需要指定类型,会根据n进行自主的判定)
cin>>n;
cout<<n;

即将开始---STL

STL是Standard Template Library的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。从根本上说,STL是一些"容器"与"算法"的集合,所谓的这些"容器"无非就是已经实现好了数据结构,能够让程序设计者更为方便的进行调用,"算法"则顾名思义就是已预先实现好了的算法集合。

STL的目的是标准化组件,这样就不用重新开发,可以使用现成的组件。STL现在是C++的一部分,因此不用安装额外的库文件。STL的版本很多,有很多公司或者工作室自定义STL形成各种各样的自定义标准。。

在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>。

使用STL可以大大辅助简化我们的算法与数据结构的设计,但是我们必须要记住,在我们使用之前,我们必须要了解他的原理,掌握它的技巧,否则就是乱用,切记。

相关推荐
猷咪7 分钟前
C++基础
开发语言·c++
IT·小灰灰8 分钟前
30行PHP,利用硅基流动API,网页客服瞬间上线
开发语言·人工智能·aigc·php
快点好好学习吧10 分钟前
phpize 依赖 php-config 获取 PHP 信息的庖丁解牛
android·开发语言·php
秦老师Q10 分钟前
php入门教程(超详细,一篇就够了!!!)
开发语言·mysql·php·db
烟锁池塘柳011 分钟前
解决Google Scholar “We‘re sorry... but your computer or network may be sending automated queries.”的问题
开发语言
是誰萆微了承諾11 分钟前
php 对接deepseek
android·开发语言·php
CSDN_RTKLIB14 分钟前
WideCharToMultiByte与T2A
c++
2601_9498683614 分钟前
Flutter for OpenHarmony 电子合同签署App实战 - 已签合同实现
java·开发语言·flutter
飞机和胖和黄27 分钟前
考研之王道C语言第三周
c语言·数据结构·考研
星火开发设计28 分钟前
类型别名 typedef:让复杂类型更简洁
开发语言·c++·学习·算法·函数·知识