c++基础语法学习

目录

第一阶段:基础知识表

计算机编程基础概念

c++基本元素

基本数据结构

常量与字面量

基本输入输出

变量

常量

第二阶段:基础通用语法

注释

控制结构

函数

类和对象

数组

面向对象

指针

引用

第三阶段基础数据结构

结构体

共用体

权举

c++字符串

向量

链表

队列

第四阶段进阶数据结构

哈希表

高精度

第五阶段算法基础

基本算法

排序算法

简单排序

高效排序

特殊排序

其他排序

查找算法

递归算法

算法效率分析

第六阶段进阶算法

动态规划

基础DP类型

背包问题

经典背包

拓展背包

其他DP

字符串算法

分治算法

贪心算法

动态规划

回溯算法

图算法

数论算法

图论算法

最小生成树

最短路径

拓朴排序

关键路径


第一阶段:基础知识表

计算机编程基础概念

程序:程序分源程序,目标程序,可执行程序

        源程序:       程序员编写的

        目标程序:   经过编译生成计算机可识别的二进制文件

        可执行程序:将多个目标程序及库整合生成可被执行的二进制文件

源程序--->(编译/汇编)---->目标程序---->(链接)--->可执行程序

算法:对解决方案的准确而完整的描述,是一系列解决问题的清晰指令,执行这些步骤就可以得到问题的解答

特征:

  • 输入项:

        一个算法可以有零个或多个输入,用于刻画运算对象的初始情况

  • 确定性:

        算法的每个步骤都必须确切定义,不能有歧义

  • 有穷性:

        算法在又穷的步骤执行完必须结束

  • 输出:

        算法有一个或多个输出,是算法的最终结果

  • 能行性:

        算法中有待执行的运算和操作必须是基本的能精确进行的

数据结构:是计算机中组织和存储数据的方式。它关注数据之间的关系,操作方法以及这些结构上的算法效率。

线性结构(元素数据按线性顺序排列):

  • 数组
  • 链表
  • 队列

非线性结构(数据元素之间存在多对或多层关系)

  • 哈希表

作用:

  • 高效管理数据,使数据的存储,查询,插入,删除等操作便捷
  • 为算法提供合适的“数据容器”影响算法的时间和空间复杂度
  • 二进制,字节等基本单位

数据以二进制(0/1)存储

位(bit):最小存储单位

字节(byte):基本存储单位(1B=8bit)

--------------------------------

常用换算

1KB=1024B

1MB=1024KB

1GB=1024MB

1TB=1024GB

c++基本元素

  • 字符集:一套包含字符(字母,数字,符号,汉字)以及对应编码的集合,用于计算机识别和存储文本信息。意在让计算机能够统一表示和处理各种文字,避免因编码不兼容导致乱码。

--常见的字符集----

  • ASCLL字符集:最早的字符集
  • GB2312/GBK/GB:中国国家标准字符集
  • Unicode字符集:旨在统一全球所有字符,常见的实现方法是UTF-8
  • IOS系列:针对欧洲语言
  • 标识符是用来识别变量,函数,类,数据库表,字段等对象的名称。

        作用:给对象一个唯一标识,方便开发者引用操作

-----命名规则----

  • 有字母,数字,下划线等字符组成
  • 不能以数字开头
  • 不能用系统预留“关键字”如"if"," for"
  • 区分大小写
  • 关键字(保留字)是被编程语言或系统先定义和用途的单词

及高级语言的单纯语法

c++:if  else for while

  • 运算符
---------------------------------
算数运算符:基于数学运算
+:加法(a + b)    
-:减法(a - b)
*:乘法(a * b)
/:除法(5 / 2 = 2)
%(取余):(5 % 2 = 1)             
++(自增):
a++:先使用后加1  ++a:先加1后使用
--(自减):
a--:先使用后减1  --a:先减1后加1
**(幂运算)()

---------------------------------
赋值运算符:将值赋给变量
= 
可以和算数运算符符合使用
+= 
例子:a + = 1 ======>a = a + 1 
---------------------------------
比较运算符:用于比较俩个值的关系 返回布尔值(真/假)
==(等于) 
!=(不等于)  
> (大于)  
< (小于)   >= (大于等于)    <=(小于等于)
----------------------------------
逻辑运算符:用于逻辑判断 返回布尔值
逻辑与(&&):当俩个操作数都为true(false)时结果为true;反之false
逻辑或(||):当俩个操作数至少有一个true(false)时,结果为true,反之false
逻辑非(!):对操作数取反,true变false   false变true
在c++中逻辑运算支持短路求值
对于&&:如果第一个操作数为false,则不会计算第二个直接返回false
对于||:如果第一个操作数为true, 则不会计算第二个直接返回true
----------------------------------------------------------
三元运算符
  • 分隔符:在编程语言中分隔代码结构,分隔语法元素
-分号;-----------
每条语句的结束标记

--花分号{}-------
定义代码块,像函数体,循环体,条件语句块等都用它包裹

--括号()---------
可以改变运算的优先级

---方括号[]--------------
关联数组,用于定义数组

---逗号----------------
分隔同类型变量声明

---空格---------------
分割关键字,标识符等

--冒号----------------
在switch语句配合case使用(case 0:)
用于类的继承(class A :PUBLIC B)
  • 转义字符
--------转义字符----------
\n:换行            
\t:水平制表符
\\: 反斜杠
\": 双引号
\': 单引号         
\0: 空字符         字符串终止符

基本数据结构

--------数据类型---------
---------整型-----------
int
short
long
longlong
----------浮点--------------
float
double
long double
---------字符型------------
char(单字符):
wchar_t(宽字符):
---------无符号类型----------
unsigned int
unsigned chaar
----------空类型-------------
void:

常量与字面量

//常量****************
不可修改的值
定义方式:
const:关键字
#define 预处理指令
例子
const int age = 18           //const 数据类型 标识符
#define MAX_SIZE 100         //宏观定义常量




//字面量*********************************************
写在代码里的固定值
42             //整数字面量
3.14           //浮点字面量
“X”            //字符字面量
“hello”        //字符串字面量
true           //布尔值字面量

基本输入输出

#include <iostream>
using namesspace std;
int main(){
    cout<<
}

变量

变量声名与定义

变量初始化

变量的作用域

常量

位于

位或

左移

右移

异或

位取反

第二阶段:基础通用语法

注释

//单行注释
/*多行注释*/

控制结构

条件语句

多分支语句

循环语句

跳转语句

函数

函数的定义与声名

函数的调用

函数参数与传参

函数返回值

函数重载

内联函数

默认参数

类和对象

数组

数组概念

数组定义

数组初始化

数组访问

数组遍历

数组套数组

一维数组

多维数组

字符数组与字符串

字符串处理函数

面向对象

指针

指针概念(地址与指针)

指针声名与初始化

指针运算

指针与数组

指针数组

指向指针的指针

指针作为函数参数

返回指针的函数

引用

引用的概念

引用作为函数参数

引用与指针的区别

第三阶段基础数据结构

结构体

定义结构体

结构体变量声名与初始化

结构体数组

结构体指针

结构体作为函数参数

共用体

定义共用体

共用体与结构体的区别

权举

定义权举类型

权举变量的使用

c++字符串

使用string类

字符串操作

向量

使用vector容器

基本操作

链表

单链表

双链表

循环链表

基本概念(后进先出)

用数组实现栈

用链实现栈

STL中的stack容器

队列

队列的基本概念(先进先出)

用数组实现队列

用链实现队列

STL的queue容器

双端队列(deque)

基本概念

二叉树

二叉树的遍历

二叉树索树(BST)

堆和优先队列

基本概念

存储

遍历

第四阶段进阶数据结构

哈希表

邻接表

图邻接矩阵

高精度

双向链表

链式前向星

二叉堆

单调栈

单调队列

并查集

离散化

树状数组

字典树

线段树

平衡二叉树

第五阶段算法基础

基本算法

排序算法

简单排序

选着排序

冒泡排序

插入排序

高效排序

归并排序

快熟排序

特殊排序

计数排序

桶排序

基数排序

其他排序

堆排序

查找算法

线性查找

二分查找

递归算法

阶乘

斐波那契数列

汉诺塔

算法效率分析

时间复杂度

空间复杂度

大o表示法

第六阶段进阶算法

动态规划

基础DP类型

线性DP

记忆化搜索(递归与DP结合)

背包问题

经典背包

01背包

完全背包

多重背包

拓展背包

分组背包

依赖背包

其他DP

树形DP

数位DP

状压DP

区间DP

字符串算法

字符串哈希

Manacher算法

分治算法

分治思想

应用

贪心算法

贪心思想

应用

动态规划

动态规划思想

应用

回溯算法

回溯算法

应用

图算法

数论算法

LAC

图论算法

强连通分量

二分匹配

最小生成树

Prim算法

最短路径

dijkstra算法

Bellman-Ford算法

Floyd算法

优化的Dijkstra+Heap算法

SPFA算法

拓朴排序

关键路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值