Rust 通过所有权系统管理内存,编译器在编译时会根据一系列规则进行检查,如果违反了这些规则,程序不能通过编译。在运行时,所有权系统的任何功能都不会减缓程序的运行
所有权规则
- Rust 中的每一个值都有一个所有者
- 值在任意时刻有且仅有一个所有者
- 当所有者(变量)离开作用域,这个值将被丢弃
PROJECT(name)指定工程名称, 默认支持所有语言
PROJECT(name CXX)指定工程名称, 支持C++
会隐式定义两个变量
修改工程名时会将这两个变量修改,可通过预定义两个变量PROJECT_BINARY_DIR以及PROJECT_SOURCE_DIR解决该问题
设定值,SET(SRC_LIST main.cpp a.cpp b.cpp),即设定了SEC_LIST的值
输出自定义的信息,主要有三种
顶点集合+边的集合:G = (V, E),顶点集合V = {x | x属于某个数据对象及}是有穷非空集合
E = {(x, y) | x, y属于V}或者E = {<x, y> | x, y属于V && Path(x, y)}是顶点间关系的有穷集合,也叫边集合
(x, y)表示x到y的一条双向通道,即(x, y)是无方向的,Path(x, y)表示从x到y的一条单向通路,即Path(x, y)是有方向的
顶点和边:图中节点成为顶点,第i个顶点记作vi, 两个顶点vi和vj相关联称作顶点vi和顶点vj之间有一条边,图中第k条边记作ek,ek = (vi, vj)或ek = <vi, vj>
<x, y>是有序的,顶点对<x, y>称为顶点x到顶点y的一条边(弧),<x, y>和<y ,x>是两条不同的边,如G3、G4(x, y)等于有向边<x, y>和<y, x>C++11:支持内置类型与自定义类型的列表初始化,其中自定义类型不是天然支持列表初始化,需要显示定义参数类型为initiaizer_list的构造函数
1 | class A |
基本使用与map相同,迭代器无反向迭代器,无序map,其体现在遍历时无序
1 | #include <unordered_map> |