标准系统类型及其范围

int8_t

-128 to 127

uint8_t

0 to 255

int16_t

-32768 to 32767

uint16_t

0 to 65535

int32_t

-21474­83648 to 2147483647

uint32_t

0 to 4294967295

int64_t

-9.2 * 10 18 to 9.2 * 10 18

uint64_t

0 to 1.8 * 10 19

Literals & Co.

255
Integer
0xaf
Hexade­cimal Integer
1234.0
double
234.243f
float
true
bool
"­Hello World"
string­/c-­string
'a'
char

预处理器

#include <LI­B>

包含标准头文件LIB

#include "­Hea­der.h"

包含Header.h文件

#define PI 3.1415­9265359

定义简单宏

#define f(a,b) a+b

更复杂的宏

#undef PI

删除定义

#ifdef PI

检查定义,如果为true,代码将被编译

#else

Else part of the above if-sta­tement

#endif

Ends the if-sta­tement

Nullpo­inter

int* pInt;
//old, deprec­ated:
if(pInt == NULL)
//new:
if(pInt == nullptr)
//still valid:
if(!pInt)

按位运算符

&

Bitwise AND

|

Bitwise OR

^

Bitwise XOR

~

Bitwise NOT

<<

Shift left

>>

Shift right

布尔逻辑

==

判断是否相等

!=

判断是否不相等

<

Less than

>

Greater than

<=

Less than or equal

>=

Greater than or equal

!

NOT

&&

AND

||

OR

C ++中的布尔表达式从左到右计算!

基本运算符

+

addition

-

subtra­ction

*

multip­lic­ation

/

division

%

modulo

++var

increase before evaluation

var++

increase after evaluation

condition ? result : altern­ative;

short form of if-like structure

::

Scope Operator

->

pointe­r-t­o-m­ember

.

Access member

<< >>

Bitshi­ft(with streams: input/­output)

Pointers: Quick and dirty

&

获取变量的RAM地址(保存到指针)

*

Dereferences指针(返回它的内容)或将一个变量定义为一个指针

->

访问指针类成员。 与(*指针)相同.member()

new

在堆上创建新对象,返回指向对象的指针

delete

在堆上的指针处删除对象

指针在堆上分配空间,堆栈上的正常变量!

使用替换typedef

//typedef已弃用

typedef uint32_t uint32;

//现在:使用指令!
//using identifier = type_name;

using uint32 = uint32_t;

自动数据类型

//auto是一种自动数据类型:
int x = 4; //equals:
auto y = 4;

//适用于大多数情况下,尤其是STL:
for(st­d::­vec­tor­<in­t>:­:It­erator it = v.begi­n().....)
//with auto:
for(auto it = v.begin; it != v.end(); ++it)

编译时断言检查

static assert­(bo­ol_­con­stexpr, string)

多线程

//线程创建和管理:
void thread­_fu­nc(int a)
{
std::cout << "My Number is: " << a;
}
main()
{
std::t­hread t1(thr­ead­_fu­nc(1));
t1.join();
}
//同步通过:
std::m­ute­x.l­ock();
std::m­ute­x.u­nlo­ck();

基于范围的循环

//Easy range based loop:
std::v­ect­or<­int> vec = .....;
for(int i : vec) //foreach i in vec

//Same with auto:
const auto vi = ....;
for(auto i : vi)

适用于所有容器begin()和end()