文章目录
基本
基本符号,原始类型,语句,函数可参照 语言·基础
权限:没有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 ifstream:public istream{
...
public:
open
close
}
class ofstream:public 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