0%

泛型算法不会执行容器操作,只会运行于迭代器之上。 #### 只读算法 只读取元素而不改变,例如find,accumulate,equal accumulate的第三个参数类型决定了返回类型和加法运算符。 #### 写容器算法

lambda

[capture list] (parameter list) -> return type {function body) 其中捕获列表和函数体必须要有
被lambda捕获的值是在lambda创建时拷贝而不是在调用时拷贝。捕获引用实际上是使用引用绑定的对象。

总体来说,顺序容器主要是对元素的操作,获得迭代器等。 #### 1. 分类 顺序容器主要类型:
1. vector:可变大小数组 2. deque:双端队列 3. list:双向链表 4. forward_list:单向链表 5. array:固定大小数组 6. string:字符串

Read more »

三种权限

1、public成员可以在整个程序内被访问。
2、private成员可以被类的成员函数访问,但是不能被使用类的代码访问。
3、friend类找个朋友可以允许他来访问(有些函数是类的接口而不是成员函数,C++ primer P234)
classstruct类似,但两者的默认访问权限不一样,区分与,class在第一个访问说明符之前是private的,而structpublic的。 ###### 友元和类最好声明在一个头文件中。

some personal notes about c++

使用visual studio 2019编写c++时initializer_list无法使用我忘记加名字作用域了
数组不能被拷贝
返回数组指针的函数,sampleint (*func(int i))[10]int i表示函数的形参是int,*func表示是一个指向数组的指针,[10]表示大小为10,int表示数组中的元素为int 以上也可以表示成auto func(int i) -> int (*)[10],或者用decltype ***

调用函数一般比直接计算表达式慢,因为调用函数需要设计到一系列的保存恢复等工作。


1
2
inline bool eq(const BigInt&, const BigInt&){...}
void putValues(int *arr,int size);

以上的哪个声明和定义放在头文件或源文件? ###### tips:上中的第一行,形参如const BigInt&是省略的名字,相当于const BigInt& bigint
预处理器定义了几个用于调试的变量

1
2
3
4
5
__func__  存放函数的名字
__FILE__ 存放文件名
__LINE__ 存放当前行号
__TIME__ 存放文件编译的时间
__DATE__ 存放文件编译日期
Read more »

邻接列表在大多数情况下都是最高效的图结构形式
#### 思考:在什么情况下,邻接列表不是最佳的数据形式
当图中的单个节点的邻接节点数量很多的时候,例如,一个有N个节点的图,并且每个节点都与其余的相连,并且邻接表需要附加链域?,此时不够高效 #### of