C++

基本

基本符号,原始类型,语句,函数可参照 语言·基础

权限:没有default权限
函数:参数可以有默认值
引用&:类型 &变量名=值 将生成一个引用,只能在定义时赋值
运算符重载:根本是一个函数:返回类型 operator运算符(类型1 变量1,类型2 变量2) 等

类 class

class 类名{
	成员变量
	构造函数(不需要写返回值,名字与类名相同)
	-析构函数(~类名)
	-复制构造函数
	-移动构造函数
	-类型转换函数
	运算符重载(operator运算符)
	功能函数

	类变量(静态变量,static)
	类方法(静态方法,static)
	
	友元 类/函数(friend,与权限无关;在调用该类时,等同于在该类内部)
}

c++将这些按照权限分开

class 类名{
private:
	...
public:
	...
protected:
	...
}
最上面的 private: 可以省略,因为在类中默认权限是private

成员变量可以有默认值

类的运算符重载,
比如重载了operator==(类名 实例2)
实例1==实例2 将变成 实例1.operator==(实例2)

使用

类名 变量名(构造参数)
类名 变量名=构造函数

继承

class 类名:继承权限 父类1,继承权限 父类2...{
	...
}

可以是单继承,也可以是多继承
默认的继承方式是private
多个继承之间用逗号(,)间隔,最后没有逗号

父类的private对 子类和外部的 不可见
private:本类的父类 的信息(protected和public)成为自己的private
protected:public将被保护为protected,protected保留
public:不变

成员初始化列表

是构造函数的一部分
比如

类名(...):父类(...),属性1(){}

构造函数中间多出来的就是成员初始化列表
顺序随意
如果为给出父类的构造函数,将使用默认构造函数

默认函数

构造函数
复制构造函数
赋值构造函数
析构函数
移动构造函数
移动赋值运算符

可以使用 定义 =default 显示声明
也可以用 定义=delete 禁用

虚函数

前面加上vitural
当它被子类覆盖时,多态情况下,(该子类实例的)父类实例 将使用该函数的子类版本

模板 template

在函数或类定义时,在前面加上
tenplate,有多种类型可以在<>里面多写几个,用逗号(,)隔开

template<class T>
class Stack{
	T* Items;
	...
}

名称空间 namespace

定义
namespace 名字{
定义变量
}
namespace 名字1=名字2

使用
全部可用 using namespace 名1
部分可用 using 名字::变量名
带名称空间使用 用的时候指出名称空间 名字::变量名

导入(#include)库

iostream 标准输入输出

cin >>
class istream{
	...
public:
	ostream & operator>>
	exceptions
	clear
	srtstate
	get
	getline
	ignore
	peek
}

cout <<
class ostream{
	...
public:
	ostream & operator<<
	ostream & put(char)
	write
	width
	fill
	precision
	setf
	unsetf
	
}

fstream 文件输入输出

class ifstreampublic istream{
	...
public:
	open
	close
}

class ofstreampublic ostream{
	...
public:
	open
	close
}

STL 容器、迭代器

方法名描述
insert在前面插入
push_back在后面插入
erase删除
begin返回指向第一个元素的迭代器
end返回指向超尾元素的const迭代器(npos)
rbegin返回指向超尾元素的反向迭代器
rend返回指向第一个元素的反向迭代器
cbegin返回指向第一个元素的const迭代器
cend返回指向超尾元素的const迭代器
operator++迭代器的下一个
operator+迭代器向后移动相应位置
operator[]返回相应索引的值的引用
at返回相应索引的值的引用
size返回大小
capacity返回容量
reserve返回
empty是否为空
clear清除容器
replace替换某些内容
assign用新值替换所有当前内容
find返回该索引的迭代器,没有则返回超尾
lower_bound返回迭代器(第一个键不小于k的元素)
upper_bound返回迭代器(第一个键大于k的元素)

string

class string{
	...
public:
	string
	substring
	replace
	strcmp
}

algorithm

方法名描述
sort排序
for_each逐个操作
swap交换
copy复制
random_shuffle随机打乱
sum求和
average求平均值
binder1st接受一个二元函数和一个值,值将作为二元函数的第2个值
binder2nd值将作为二元函数的第2个值

list

remove

deque 双端队列

vector

set

map

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值