新手向:初步学完C语言,是时候选择C++了

        计算机专业的同学们接触的第一门语言基本都是C语言,而在做题的时候明显感觉C语言相对原始,而且输入输出格式要求严格。对于想提高自身编程水平的同学们而言,去主流OJ平台上刷题必不可少。以洛谷为例,当你打开题解时,发现基本都是采用C++编写的题解。

        因此,本蒟蒻通过3个月学习C语言的经历分享我的观点:初步学完C语言,是候选择C++了!

        正如上文所言,C语言相对原始,而C++有更多好用方便的函数,对于输入输出也没有那么严格,做题更加方便。那么本文就是告诉各位如何速成C++,用C++更愉快地做题。

        事先声明,本人为一名普通的计算机专业学生,仅在Codeforces与洛谷上有了一点OJ刷题经验,根据课堂及自学内容总结出以下经验贴,如有错误,欢迎各路大佬指正!

        其实,C语言与C++只有两个主要区别,而速成C++仅需改变这两个地方:

        1、头文件区别:

       C语言新手常用头文件:

#include
#include
#include
#include

        而换为C++,则需要变为:

#include
#include

//以下为c语言头文件,意味着c++可以沿用c语言的语法
#include
#include
#include

//头文件后需加上这一句
using namespace std;

        或者C++提供了一统头文件的万能头:

        注意:该头文件在Dev C++默认带有,牛客、洛谷、Codeforces等主流OJ平台也能使用,但在Visual Studio则需自行添加该头文件

#include

        2、输入输出区别:

        C语言使用格式化输入输出:

        以输入一个整数a为例

scanf("%d",&a);
printf("%d",a);

        C++的输入输出:

cin>>a;
cout<

        同时,C++能沿用C语言的语法,例如scanf、printf也可在C++编译器下使用(需要添加cstdio头文件),除输入输出外,其他基础语法C++与C语言基本没有区别,也就是C语言怎么写的,C++还是怎么写。

        (Tip:C语言某些函数在C++编译器下可能会出错,如gets())

        说完主要区别,接下来我将介绍几个常用且快捷的函数!

        C++更方便快捷的函数:

//比较函数:
max(a,b)//返回较大值
min(a,b)//返回较小值

//交换函数:
swap(a,b)//交换a、b位置

//排序函数:时间复杂度为O(nlogn)
sort(begin, end, cmp)
//sort函数里的begin指数组首位元素下标,end指末位元素下标
//注意:cmp函数可以没有,即默认从小到大排序
//若需要自定义排序规则则需要编写bool类型返回值的cmp函数

        这里使用C语言则需要手搓函数实现上述功能,此处可以做一个对比:

//输出较大值
int max(int a,int b){
    return a>b?a:b;
}
//输出较小值
int min(int a,int b){
    return akey)r--;
		if(l<=r)
		{
			swap(a[l],a[r]);
			l++;r--; 
		}
	}
	if(leftl) quick_sort(a,l,right);
}

        你愿意选择哪种?

        代码实战:

        大家可以参考以下例题,展示三个常用函数的使用。

        例:输入两个数,比较大小,交换位置;输入一个数组,从小到大排序;

#include
#include
#include
#include
#include
using namespace std;

int main(){
	int a,b;cin>>a>>b;
	int num[5];

    //比较大小
	int mx=max(a,b);//mx表示最大值
	int mn=min(a,b);//mn表示较小值

	cout<<"max="<

       输出结果:

新手向:初步学完C语言,是时候选择C++了_第1张图片

       

        写在最后:除了以上常用的函数,更有方便快捷的STL容器可以帮助实现C语言中较难实现的数据结构等,C++给的实在太多了~

        请注意:C++使用的cin,cout的输入方式也并非完美,存在性能上的问题,而至于如何优化请各位读者自行研究或是参考别的大佬的文章。

        本人第一篇博客,完结撒花~

你可能感兴趣的:(c语言,c++,开发语言)