基础知识
1.Hello World
//#include <bits/stdc++.h>
#include <iostream>
using namespace std;
int main(){
cout << "Hello World\n";
return 0;
}
2.基本类型
sizeof可求尺寸,如sizeof(char)等于1
类型别名,两种等价的形式:1)using int32_t = int; 2)typedef int int32_t
3.算术运算符
4.比较运算符
5.初始化:
1)赋值即=
2)使用花括号{}的一组初始化器列表
初始化 | 含义 |
---|---|
double d1 = 2.3; | |
double d2 {2.3} | |
complex<double> z = 1 | 数值为双精度浮点数的复数 |
complex<double> z2 {d1,d2}; | |
complex<double> z3 = {1,2}; | 当使用 {…} 的时候,符号 = 是可选的 |
vector<int> v {1,2,3,4,5,6}; | 由整数构成的向量 |
int i {7.2}; //错误:试图执行浮点数向整数的类型转换,故{}好处可保证不会发生丢失信息的类型转换
vector<int> v4{}; //v4 被赋值为一个空向量
6.auto新特性:自动判断变量类型,如 auto b = true; //变量b的类型是bool
当声明语句中有auto关键字时, = 是比 {} 更好的选择
7.const:常量,不改变值
const int dmv = 17; // dmv是一个常量
int var =17; // var不是常量
8.constexpr:在编译时求值
constexpr double a = 1.4*square(dmv); // 正确,square(17)是常量表达式
constexpr double b = 1.4*square(var); // 错误,square(var)不是常量表达式
constexpr double square(double x) { return x*x; }//常量表达式
9.检验:if、switch
10.循环:for、
范围for语句,更简单的一种for语句:
void print(){
int v[] = {0,1,2,3,4,5};
for(auto x : v) //对于 v 当中的每个 x
cout << x << '\n';
for(auto x : {3,55,6,7,8})
cout << x << '\n';
}
若不希望把 v 的值拷贝到 x 中,而只想 x 指向 v 中的一个元素,则:
// 这是一种引用,引用类似于指针但无须使用*访问所引用的值
void intcrement{
int v[] = {0,1,2,3,4,5};
for(auto& x : v)
......
}
10.结构体(new)
访问结构体成员的方式有两种,一种是通过名字或引用,这是我们使用 .(点运算符);另一种是通过指针,这时用到的是 ->
11.类
12.枚举:enum class,可枚举一系列值,常用于描述规模较小的集合
enum class Color { red, blue, green };
enum class Traffic_light{ green, yellow, red };
Color col = Color::red;
Traffic_light light = Traffic_light::red;//两个red是不同的
13.模块化
14.类
15.容器
16.抽象类型、虚函数、类层次、拷贝和移动、资源管理、抑制操作、模板