
🌊用有趣的言语来阐述苦涩难懂的代码世界,让每一个技术都充满风趣!
🔭个人主页: 散峰而望
🚀学习方向: C/C++等方向
📌专栏系列:
💬人生格言: 冀以尘雾之微,补益山海,荧烛末光,增辉岁月。
🎬博主简介



文章目录
- 前言
- [1. 软件下载](#1. 软件下载)
-
- 1.1下载和使用
- [1.2 软件一些问题处理](#1.2 软件一些问题处理)
- [2. 第一个C++文件](#2. 第一个C++文件)
-
- [2.1 基础程序](#2.1 基础程序)
- [2.2 main函数](#2.2 main函数)
- [2.3 字符、字符串](#2.3 字符、字符串)
- [2.4 头文件](#2.4 头文件)
- [2.5 cin和cout初识](#2.5 cin和cout初识)
- [2.6 名字空间](#2.6 名字空间)
- [2.7 注释](#2.7 注释)
- [2.8 练习](#2.8 练习)
- 结语
前言
工欲善其事,必先利其器。C++作为算法竞赛的基石语言,以其卓越的性能与强大的功能,成为攻克难题、赢得胜利的锐利武器。本章将引领您从零开始,系统掌握程序结构、数据类型、基础语法等核心概念,为构建坚实的算法大厦打下第一块基石。希望各位读者能迈稳这关键一步,以扎实的基本功,开启通往更高竞技舞台的征途,为未来的辉煌战绩奠定坚实基础。
------ 让我们从第一个"Hello, World!"开始,书写属于我们的算法篇章!
1. 软件下载
1.1下载和使用
可以跳转这个链接 -- Dev-C++软件下载配置以及使用,来熟悉熟悉Dev C++软件。
1.2 软件一些问题处理
以及对Dev-C++一些问题的处理 -- Dev-C++一些问题的处理,帮助我们更好的使用Dev-C++。
2. 第一个C++文件
2.1 基础程序
cpp
#include<iostream>
using namespace std;
int main()
{
cout << "hello world" << endl;
return 0;
}
一个程序的运行需要:编译+运行。
- 编译:检查程序是否有错误 或警告。
- 运行:跳出终端,可以在屏幕上打印。

2.2 main函数
main函数是程序的入口,无论C++程序中有多少代码,都是从main函数开始执行,故main函数 也被称为:主函数。main函数前面的int表示main函数执行结束的时候返回一个整型类型的值,而在main函数的最后写 return 0; 正好前后呼应。
- mian函数是程序的入口
- main函数有且仅有一个
- 一个项目中可以有多个.cpp文件,但只能有一个main函数,因为程序入口只能有一个 。关于函数,这里不过多描述,后面会专门讲。
cpp
main函数固定模板
int mian()
{
return 0;
}
2.3 字符、字符串
在C语言中,使用单引号 括起来一个字符 ,表示字符字面值,比如:'2','a',使用双引号 括起来多个字符表示一个字符串,比如:"abcd","hello world",字符串中可以有一个或多个字符,也可以没有字符," "表示空字符串。
在C++的STL中又引入了string来表示字符串,功能更加强大,C语言不支持,后面会详细介绍。上述的代码中字符串的内容可以由所需变换,可以自己试试。
cpp
using namespace std;
int main()
{
'a';
'6';
'v';
"abcd";
"hello world";
" ";//空字符串
return 0;
}
2.4 头文件
由上面的代码中可以看到,基本上会在第一行都会有
c
#include<iostream>
这就是包含头文件,头文件的名字叫:iostream,使用#include<>的形式进行包含。iostream文件中的io指的是输入(进入程序的信息,就是可以给程序输入数据)和输出(从程序中输出的信息,就是将程序的数据打印到屏幕上)。
在C++中要完成输入和输出的操作会涉及到iostream文件中的多个定义,所以要包含这个头文件的。一个头文件可以理解为一个工具箱,工具箱中包含多种工具,想要使用这些工具就必须包含头文件。比如:cout是输出对象,就是用来完成数据输出,需要包含头文件。
iostream -- 输入输出流
i -- input -- 输入
o -- output -- 输出
除了这个头文件之外,C++还有其他的一些头文件,每一个头文件都支持一组特定的工具。在代码中如果使用某个头文件的定义,就要包含相对应的头文件。
C++库函数相关头文件:C++库函数相关头文件
注意:
- 在C语言中头文件的扩展名是.h,但是C++中发生了一些变化,对老式的C的头文件保留了扩展名.h,但是C++自己并没有扩展名。
C语言头文件:C语言头文件
- C语言有的头文件被转化为C++头文件,这些头文件被重命名,去掉.h的扩展名,并在文件名前面加上前缀C,表示来自C语言。例如:C语言中数学的头文件math.h,在C++中就是cmath。同时也要注意,有时候C语言版本和C++版本相同,有时候,C++会有一些修改。
头文件的命名约定:

2.5 cin和cout初识
cpp
cout << "hello world" << endl;
这句代码是上面程序中最重要的代码,其他所有代码都是为了编写这句代码。
cout是标准输出流对象
cin是标准输入流对象
代码如下:
cpp
#include<iostream>
using namespace std;
int main()
{
int num;
cin >> num;
cout << num << endl;
return 0;
}

- cin和cout是全局的流对象,cin负责输入数据,cout负责输出数据。
- endl是C++中特殊的操作符,效果是换行和刷新缓冲区,使用时必须包含iostream头文件
- <<是流插入运算符,和cout配合使用。>>是流提取运算符,和cin配合使用。两者易混淆,大家一定要取分开。
- 使用C++输入输出更方便,不需要像C语言中printf/scanf那样,需要手动控制格式类型。C++可以自动识别变量类型。
比如:
C++语言:


C语言:
c
#include<stdio.h>
int main()
{
int n = 0;
scanf("%d",&n);
printf("%d\n",n);
return 0;
}
如果没有endl则会出现这种情况,所以一定不要忘记码上。

2.6 名字空间
cpp
using namespace std;
这句话代码意思是:使用名字空间std(名字空间也叫命名空间)。为了更好的理解什么叫做名字空间,名字空间的用处是什么,大家可以看一个例子:
一个学校里学生可能有重名,假设这个学校有3个叫张三的同学,那么每次老师喊张三的时候,其他两个张三就会误会,是不是在喊自己,这就是因为这三个张三其实在同一个范围(空间)内的,就会有名字的冲突。但是如果这个学校的学生分为三个班,分别是1班、2班、3班,把三个张三分别安排在不同的班级,那么老师以后喊:1班的张三,那么2班、3班的张三就不会误会了,这是不是就很好的解决了名字冲
突的问题。其实这里的本质就是:1.将名字进行了隔离,2.在使用名字之前先交待使用哪个班级的名字

在C++中,变量、函数和类都是大量存在的,这些变量、函数和类的名称如果都存在于全局作用域中,可能会导致很多冲突。使用名字空间的目的是对标识符的名称进行隔离,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
std是C++标准库的名字空间名,C++将标准库的定义实现都放到这个命名空间中,当我们需要使用标准库中的内容时,就需要加上:using namespace std;当有了这句代码的时候,表示名字空间std中信息都是可⻅和可用的,比如:cin、cout、endl等。
名字空间也可以自己定义,因为主要以竞赛常用为主,这里不加以详细介绍,可以自行学习。
当然直接使用using namespace std;是一种简单粗暴的做法,直接这样使用,就意味着后续在std这个名字空间中的各种定义都可以直接使用,但是我们往往只是使用部分。所以名字空间其实也可以这样使用:
cpp
#include<iostream>
using namespace std;
int main()
{
std::cout << "hello world" << std::endl;
return 0;
}

代码中的std::cout的意思就是使用std名字空间中的cout。
不过一般这种写法比较浪费时间,所以竞赛中一般直接写:
cpp
using namespace std;
2.7 注释
C++里有两种注释形式:
- 单行注释://
- 多行注释:/* */
注释本来是对代码进行解释的文字,要放在代码中,但是又无需编译。注释是给程序员自己看的,编译器会忽略注释,基于注释是被编译器忽略的这个特点,在代码中有些代码不再需要的时候也会使用注释的方式屏蔽。
单行注释:当前行不参与编译和运行
cpp
int main()
{
int i = 0;
//cin >> i; //这是单行注释
cout << i << endl;
return 0;
}
多行注释:被包含在内的多行不参与编译和运行
cpp
/*
int main()
{
int i = 0;
//cin >> i; //这是单行注释
cout << i << endl;
return 0;
}*/
注释方式:
- 快捷键:**ctrl + /**注释和取消注释
- 点击菜单中的编译

2.8 练习
以下是一些简单题型可以做一下,后面会单独进行讲解。
结语
希望这篇文章可以助各位敲开算法竞赛的大门,初识C++的奥秘,去探寻算法世界的精妙。同时愿诸君能一起共渡重重浪,终见缛彩遥分地,繁光远缀天。

