IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++学习 -> 正文阅读

[C++知识库]C++学习

目录

C++程序结构

头文件

注释

基本的类型

typedef 声明

枚举类型

?????????常量

整数常量

?浮点常量

布尔常量

字符常量

字符串常量

定义常量

?杂项运算符

?????????常用库函数

1、max函数|C++返回最大值

2、min函数|C++返回最小值

3、cin.getline()、getline()、gets()、cin.get(),getchar()

4、栈

5、队列

6、双端队列


C++程序结构

#include <iostream>

using namespace std;

// main() 是程序开始执行的地方

int main()

{

????????cout << "Hello World"; // 输出 Hello World

????????return 0;

}

头文件

相当于C语言中的#include<stdio.h>

#include <iostream>

using namespace std;

万能头文件,包含很多函数可以直接用

#include<bits/stdc++.h>
using namespace std;

注释

C++ 支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。

C++ 注释一般有两种:

  • //?- 一般用于单行注释。

  • /* ... */?- 一般用于多行注释。

基本的类型

类型关键字
布尔型bool
字符型char
整型int
浮点型float
双浮点型double
无类型void
宽字符型

wchar_t

一些基本类型可以使用一个或多个类型修饰符进行修饰:

  • signed
  • unsigned
  • short
  • long

类型

范围
char1 个字节-128 到 127 或者 0 到 255
unsigned char1 个字节0 到 255
signed char1 个字节-128 到 127
int4 个字节-2147483648 到 2147483647
unsigned int4 个字节0 到 4294967295
signed int4 个字节-2147483648 到 2147483647
short int2 个字节-32768 到 32767
unsigned short int2 个字节0 到 65,535
signed short int2 个字节-32768 到 32767
long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
signed long int8 个字节-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807
unsigned long int8 个字节0 到 18,446,744,073,709,551,615
float4 个字节精度型占4个字节(32位)内存空间,+/- 3.4e +/- 38 (~7 个数字)
double8 个字节双精度型占8 个字节(64位)内存空间,+/- 1.7e +/- 308 (~15 个数字)
long double16 个字节长双精度型 16 个字节(128位)内存空间,可提供18-19位有效数字。
wchar_t2 或 4 个字节1 个宽字符

注意:

1、bool类型:存储值 true 或 false。

2、?用 extern 声明外部变量是不能进行初始化:

为什么会这样呢?因为?extern int a;?只是声明而不是定义,声明是不会为变量开辟内存空间的,自然无法对其进行初始化的操作。

typedef 声明

可以使用?typedef?为一个已有的类型取一个新的名字

例如,下面的语句会告诉编译器,feet 是 int 的另一个名称:

typedef int feet;

现在,下面的声明是完全合法的,它创建了一个整型变量 distance:

feet distance;

注意:

#define 没有作用域的限制,只要是之前预定义过的宏,在以后的程序中都可以使用。

而 typedef 有自己的作用域。

枚举类型

创建枚举,需要使用关键字?enum。枚举类型的一般形式为:

enum 枚举名{ 
     标识符[=整型常数], 
     标识符[=整型常数], 
... 
    标识符[=整型常数]
} 枚举变量;

如果枚举没有初始化, 即省掉"=整型常数"时, 则从第一个标识符开始。

例如,下面的代码定义了一个颜色枚举,变量 c 的类型为 color。最后,c 被赋值为 "blue"。

enum color { red, green, blue } c;
c = blue;

默认情况下,第一个名称的值为 0,第二个名称的值为 1,第三个名称的值为 2,以此类推。但是,您也可以给名称赋予一个特殊的值,只需要添加一个初始值即可。例如,在下面的枚举中,green?的值为 5。

enum color { red, green=5, blue };

在这里,blue?的值为 6,因为默认情况下,每个名称都会比它前面一个名称大 1,但 red 的值依然为 0。

常量

整数常量

整数常量可以是十进制、八进制或十六进制的常量。前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制。

整数常量也可以带一个后缀,后缀是 U 和 L 的组合,U 表示无符号整数(unsigned),L 表示长整数(long)。后缀可以是大写,也可以是小写。

eg:

212 // 合法的

215u // 合法的

0xFeeL // 合法的

078 // 非法的:8 不是八进制的数字

032UU // 非法的:不能重复后缀

?85 // 十进制

?0213 // 八进制

?0x4b // 十六进制

?30 // 整数

?30u // 无符号整数

?30l // 长整数

?30ul // 无符号长整数

?浮点常量

当使用小数形式表示时,必须包含整数部分、小数部分,或同时包含两者。当使用指数形式表示时, 必须包含小数点、指数,或同时包含两者。带符号的指数是用 e 或 E 引入的。

布尔常量

布尔常量共有两个,它们都是标准的 C++ 关键字:

  • true?值代表真。
  • false?值代表假。

注意:我们不应把 true 的值看成 1,把 false 的值看成 0。

字符常量

字符常量可以是一个普通的字符(例如 'x')、一个转义序列(例如 '\t'),或一个通用的字符(例如 '\u02C0')。

有一些特定的字符,当它们前面有反斜杠时,它们就具有特殊的含义,被用来表示如换行符(\n)或制表符(\t)等。下表列出了一些这样的转义序列码:

转义序列含义
\\\ 字符
\'' 字符
\"" 字符
\?? 字符
\a警报铃声
\b退格键
\f换页符
\n换行符
\r回车
\t水平制表符
\v垂直制表符
\ooo一到三位的八进制数
\xhh . . .一个或多个数字的十六进制数

字符串常量

字符串字面值或常量是括在双引号?""?中的。一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符。

定义常量

在 C++ 中,有两种简单的定义常量的方式:

  • 使用?#define?预处理器。
  • 使用?const?关键字。

杂项运算符

下表列出了 C++ 支持的其他一些重要的运算符。

运算符描述
sizeofsizeof 运算符返回变量的大小。例如,sizeof(a) 将返回 4,其中 a 是整数。
Condition ? X : Y条件运算符。如果 Condition 为真 ? 则值为 X : 否则值为 Y。
,逗号运算符会顺序执行一系列运算。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值。
.(点)和 ->(箭头)成员运算符用于引用类、结构和共用体的成员。
Cast强制转换运算符把一种数据类型转换为另一种数据类型。例如,int(2.2000) 将返回 2。

常用库函数

1、max函数|C++返回最大值

在algorithm头文件中

2、min函数|C++返回最小值

在algorithm头文件中

3、cin.getline()、getline()、gets()、cin.get(),getchar()

cin.getline(str,20);//接收一行字符串,可以接收空格
cin.getline(str,20,'#');//接收一行字符串,可以接收空格,遇到#结束

string s;
getline(cin,s);//接收一行字符串,可以接收空格
getline()和cin.getline()很类似,cin.getline()属于istream流,需要包含头文件<iostream>
而getline()属于string流,需要包含头文件<string>,是不一样的两个函数

char str[20];
gets(str);//接收一行字符串到字符数组里面,可接收空格

char ch;

cin.get(ch);//用来接收一个字符

char str[20];

cin.get(str, 20);//接收一行字符串,可以接收空格

char ch;

ch = getchar();//不能写成getchar(ch)

4、栈

(先进后出)

头文件:#include<stack>

声明一个栈:stack <数据类型> 数据名 ?如:stack <int> a

用法:

a.push(); ? //进栈一个元素
a.pop(); ? //从栈顶出栈一个元素
a.empty(); ? //为空返回true,否则返回false
a.top(); ? //返回栈顶元素,但不删除成员
a.size(); ? //返回栈的大小

5、队列

(先进先出)

头文件:#include<queue>

声明一个队列:queue <数据类型> 数据名 ?如:queue <int> q

用法:

q.push(); ?//进队一个元素??
q.pop(); ?//在队首出队一个元素? ?
q.empty(); ?//为空返回true,否则返回false
q.front(); //返回队首元素 ,但不删除元素
q.back(); ?//返回队尾的元素 ,也不删除元素
q.size(); ?//返回队列的大小

?6、双端队列

头文件: #include < deque >

deque a(10); //创建一个有10个元素双端队列a,初始值都为0
a.push_front(0);//在头部加入数据0
a.push_back(11);//在尾部加入数据11
a.pop_front();//在头部删除数据
a.pop_back();//在尾部删除数据
a.resize(num);//重新指定队列的长度
a.size() //返回容器中实际数据个数
a.max_size() //返回容器中最大数据的数量
可以像使用数组一样输入或输出a[i]

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-29 22:54:07  更:2022-01-29 22:56:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:54:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码