C++入门(算法竞赛类) - 教程

个人主页:星轨初途
个人专栏:C语言数据结构C++学习(竞赛类)

在这里插入图片描述

前言

嗨(。◕ˇ∀ˇ◕)!我们又见面啦!本专栏是为了学完C语言后转换为C++编程语言的学习,所以本专栏C++中和C语言重合的部分就不进行讲解啦!本专栏主要偏向于C++竞赛类!
欢迎大家来一起进步啦!

一、工具的安装

在算法竞赛中,最常用的工具就是dev-C++,他比较轻便,专门为了竞赛准备
下载链接Dev-C++
文章教程:下载及使用过程

二、第一个C++程序

在学习C++之前,我们需知道C++兼容C,所以C++和C用法有很多相同

1、基础程序

#include <iostream>        //头文件
  using namespace std;       //使用std的名字空间
  int main()                 //main函数
  {
  cout << "hello world!" << endl;  //输出: 在屏幕打印"hello world!"
  return 0;
  }

可能大家对此有所疑惑,下面为大家讲解

2、头文件

C++库函数相关头文件:C++头文件网站

注意

  1. 在C语言中头文件的扩展名是.h;C++中,对老式C的头文件保留.h扩展名,但C++自身的头文件无扩展名。
    C语言头文件参考:https://zh.cppreference.com/w/c/header

  2. 部分C的头文件被转换为C++头文件:这类文件会去掉.h扩展名,并在文件名前加前缀c(表示来自C语言);例如:C语言的数学头文件math.h,在C++中对应cmath
    需注意:C语言版本与C++版本的头文件有时内容相同,有时新版本会做修改。

头文件的命名约定:

头文件类型约定实例说明
C++旧式风格以.h结尾<iostream.h>C++程序可以使用,一些新的IDE可能不再支持
C旧式风格以.h结尾<math.h>C、C++程序可以使用
C++新式风格没有扩展名<iostream>C++程序可以使用,使用namespace std
转换后的C加上前缀,没有扩展名<cmath>C++程序可以使用,可能包含不是C的特性

3、初识cin和cout

cout << “hello world!” << endl; 这句代码在上面的程序中是最重要的代码,其他所有的
代码都是为了编写这句代码

(1)核心流对象:cin & cout

  • 二者是C++的全局流对象,用于控制台(键盘/屏幕)的输入输出:
    • cin:负责从键盘输入数据
    • cout:负责向屏幕输出数据,功能是将双引号内的内容(或变量值)打印到标准输出设备(屏幕),双引号内的内容可根据需求替换。

(2)关键操作符

  1. endl

    • 是C++的特殊操作符,作用是换行 + 刷新缓冲区
    • 使用时必须包含头文件 <iostream>
  2. 流运算符(<< / >>)

    • <<:称为流插入运算符,需与 cout 配合使用(用于输出);
    • >>:称为流提取运算符,需与 cin 配合使用(用于输入);
    • 两者功能不同,不可混用。

(3)C++输入输出的优势

相较于C语言的 printf/scanf,C++的 cin/cout 更便捷:

  • 无需手动控制格式(如指定%d/%s等);
  • 自动识别变量类型(后续学习中体会)。

4、名字空间

上述代码using namespace std;
这句代码的意思是:使用名字空间 std (名字空间也叫命名空间)

(1)核心作用

作用是隔离变量、函数、类的名称,解决同名冲突问题(比如多个“张三”分属不同空间,就不会混淆)。

(2)std名字空间

std是C++标准库的专属名字空间——标准库的所有内容(如cincoutendl)都被放在这个空间里。

(3)使用std的两种方式

  1. 全局暴露(简单直接)
    using namespace std;,表示直接使用std空间里的所有内容,后续用cin/cout等无需额外前缀。

  2. 局部指定(精准可控)
    不写全局暴露语句,而是在使用时加std::前缀(如std::cout << "hello";),仅调用std中需要的内容。
    注意

    采用 std::cout 这种写法,如果频繁使⽤,在算法竞赛中⽐较⿇烦,耽搁时间。
    但是在企业中做软件开发基本上都这样写的,这样写更好的避免名字冲突的问题,后期在慢慢琢磨。

三、数据类型、变量和常量、算术操作符、赋值操作符、类型转换、单目操作符

骗你们的,我们已经学习过C语言,这里C++和C语言操作一致,这里就不做讲解啦!
但还要注意C++中cout输出时不能通过空格来输出空格
比如

#include <iostream>        
  using namespace std;
  int main()
  {
  int a=0;
  cout<<a   <<a<<endl;
  return 0;
  }

我们发现无法空格
在这里插入图片描述
但是用字符来形成空格就行啦!(与C语言中printf通用)

#include <iostream>        
  using namespace std;
  int main()
  {
  int a=0;
  cout<<a<<" "<<a<<endl;
  return 0;
  }

在这里插入图片描述

四、结束语

嗨ヾ(o´∀`o)ノ !本篇到这里就结束啦!主要讲解了C++的初识,和C一致的用法就简单提一下,相信大家都能有所收获!欢迎大家积极在评论区进行询问和建议,感谢大家的支持啦!下一篇我们将讲解C++的输入输出,欢迎大家来了解!

在这里插入图片描述

posted @ 2025-12-25 15:03  clnchanpin  阅读(36)  评论(0)    收藏  举报