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++标准库的专属名字空间------标准库的所有内容(如cin、cout、endl)都被放在这个空间里。

(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++的输入输出,欢迎大家来了解!

相关推荐
罗湖老棍子1 小时前
【例 1】Sightseeing Trip(信息学奥赛一本通- P1494)(洛谷-P10927)
数据结构·算法·图论·最短路·floyd·最小环
努力实干2 小时前
面向对象设计原则——C++
开发语言·c++·数码相机
恒锐丰科技林技术员3 小时前
EG3525S 推挽半桥 PWM 控制芯片解析与工程应用
经验分享·嵌入式硬件·硬件工程
stsdddd3 小时前
YOLO算法建筑工地安全帽目标检测数据集16881张:标注核对笔记
算法·yolo·目标检测
波力海苔夹心脆6754 小时前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
CV爱数码4 小时前
论文精读|Learned Primal-Dual:把原始–对偶算法展开成网络
图像处理·算法·计算机视觉·ct·重建·断层扫描
一比七品牌咨询4 小时前
从“方案不落地”到“产线见效”:制造企业智能化转型品牌咨询服务商有哪些
经验分享·制造·品牌咨询
yuniko-n4 小时前
【算法】约瑟夫环问题
java·算法
syagain_zsx4 小时前
jsoncpp 使用指南:编译链接、Json::Value 取值与高频坑
c++·json·库·http格式
l1t5 小时前
测试DuckDB v2.1.0-alpha49002的bignum乘法
数据库·sql·算法·duckdb