C++入门(算法竞赛类)

文章目录

个人主页:星轨初途

个人专栏:C语言数据结构C++学习(竞赛类)

前言

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

欢迎大家来一起进步啦!

一、工具的安装

在算法竞赛中,最常用的工具就是dev-C++,他比较轻便,专门为了竞赛准备

下载链接Dev-C++

文章教程:下载及使用过程

二、第一个C++程序

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

1、基础程序

cpp 复制代码
#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输出时不能通过空格来输出空格

比如

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

我们发现无法空格

但是用字符来形成空格就行啦!(与C语言中printf通用)

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

四、结束语

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

相关推荐
猎河增长官4 分钟前
成绩数据可视化分析系统,教师精准教学改进方向
经验分享
智驱力人工智能5 分钟前
无人机河道漂浮物检测 从项目构建到价值闭环的系统工程 无人机河道垃圾识别 农村河道漂浮物智能清理方案 无人机辅助河道清洁预警
opencv·算法·安全·yolo·目标检测·无人机·边缘计算
悠哉悠哉愿意6 分钟前
【EDA学习笔记】电子技术基础知识:元件数据手册
笔记·单片机·嵌入式硬件·学习·eda
德福危险13 分钟前
C语言数据类型与变量 系统总结笔记
c语言·笔记·算法
@淡 定14 分钟前
JVM调优参数配置详解
java·jvm·算法
moonquakeTT18 分钟前
C++:智能指针
开发语言·c++
Lenyiin20 分钟前
第 97 场周赛:公平的糖果交换、查找和替换模式、根据前序和后序遍历构造二叉树、子序列宽度之和
java·c++·python·leetcode·周赛·lenyiin
CoovallyAIHub22 分钟前
从电影特效到体育科学,运动追踪只能靠“人眼”吗?
深度学习·算法·计算机视觉
风筝在晴天搁浅22 分钟前
hot100 48.旋转图像
算法
Clarence Liu24 分钟前
MacOS 在Trae IDE中构建现代C++开发环境:从新手到高效的完整指南
c++·ide·macos