0、Get Start With C++

来源:互联网 发布:c语言中标识符怎么用 编辑:程序博客网 时间:2024/06/05 22:53

0、  前言

经历了第一次正式比赛(2017JSCPC),深感基础的不扎实,写写这些东西,也权当是巩固一下基础了。

首先,必须要声明,这个教程并不会面面俱到;但是作为入门是足够的。C++包罗万象,若是想要深入研究,推荐在学会我后面讲的各种内容之后,再去看看C++ Primer、Effective C++、Effective STL等书。

其次,我默认此文的读者是学过C的,相关内容不会赘述。

在开始之前,还有一点废话要说——

 

0.1、  代码风格

         1、命名

         变量名、函数名,不必特别清晰,但至少要能让自己看懂,以后回顾代码的时候能很容易知道其作用。

一般,我们采用这样的命名策略:

变量名: vecNum(从第二个单词起首字母大写)

常量名:MAXN,INF(全部大写)

函数名:FuncName(每个单词首字母大写)

至于是否要用缩写,就自行权衡一下利弊吧。

(顺便,变量命名时应有意识地避开标准库中定义的名称。)

         2、格式

         该换行换行,该空格空格。

         千万别写成这样:

         Intfun(int par){for(;;){(state1);(state2);(state3);}}

         以及,虽然将很多语句复合在一起能够加快速度,但无疑不利于理解,而且易出bug。

         3、坚持一种良好的风格,并养成习惯

 

0.2、  C++

C++= C + 面向对象+ 模板+ STL (Effective C++)

面向对象和模板相关的内容这里只会简单涉及到,主要讲解ACM中极常用到的STL相关内容。


头文件

C中头文件格式基本为 xxx.h,在C++中建议用 cxxx 替换。

例:#include <cstdio>

#include <cmath>

C++头文件无.h的后缀。


基本的输入输出

#include <iostream>int main(){int num;std::cin >> num;std::cout << "输入为:" << num << std::endl;return 0;}


cin:标准输入

>>:输入运算符

cout:标准输出

<<:输出运算符

endl:换行符

(输入输出运算符的方向与数据流方向相同)

cin cout使用较为方便,但当数据多于1e5时,它们将会很慢,因此,对于输入输出数据组数较多的情况,应使用scanf和printf。


using namespace std;

加上这条语句,上面的代码就能改为:

#include <iostream>using namespace std;int main(){int num;cin >> num;cout << "输入为:" << num << endl;return 0;}

:: —— 作用域操作符

在使用using语句之前,cin等名字定义在命名空间std中,无法在外部直接使用,需要通过std::cin的形式,才能正确访问。

使用这一语句,相当于声明:我将要使用std中定义的名字,之后就不用再声明命名空间了。

(using用法不止于此,可自行研究)


常量定义

用const常量代替define宏定义。

例: const int INF = 0x3f3f3f3f;

 const double EPS = 1e-6;


结构体(类)的定义方式

C中需要使用typedef来定义“结构体类型”,才能用此类型名定义结构体变量。

C++中,无需使用typedef。

struct Node{int elem;Node *next;};Node *T;

引用

引用相当于为变量(常量)定义别名、同义词,引用与指针有很多相似之处,也有很多不同。

int num;int &ref = num;
引用也有很多使用上的技巧,可自行百度。


0.3、不会讲到的内容

智能指针与内存管理

类(继承)

模板

……

以及各种零碎的内容和高级技巧。


原创粉丝点击