基础知识
结构struct
struct debts //定义结构
{
char name[50];
double amount;
};
C89中,debts称为标签名(tag),struct tag合起来才是类型名.由此使用时要struct + tag。
可以象楼上说的,用typedef创建类型名。
C99中,可以直接用tag做类型名。
C++中,tag也可以直接用tag做类型名
动态分配malloc
S=(Stack)malloc(sizeof(struct SNode))
赋值给指针要把malloc分配的内存空间转成对应的指针类型。
用完之后要free(L1)
,完事之后L1不会变为NULL,会变为野指针,所以要注意L1=NULL
。
auto
auto的原理就是根据后面的值,来自己推测前面的类型是什么。
// auto作用就是迭代容器中所有的元素,每一个元素的临时名字就是x,等同于下边代码。
for (vector<int>::iterator iter = nums.begin(); iter != nums.end(); iter++)
// b为一个容器,效果是利用a遍历并获得b容器中的每一个值,但是a无法影响到b容器中的元素。
for(auto a:b)
// 加了引用符号,可以对容器中的内容进行赋值,即可通过对a赋值来做到容器b的内容填充。
for(auto &a:b)
单双引号的区别
在C++中单引号表示字符,双引号表示字符串。
反向迭代器
vector<int>(res.rbegin(),res.rend())
,生成一个反向的vector
vector<vector<bool>> st(rows, vector<bool>(cols))
,st
包含rows
个值为vector<bool>
的元素,vector<bool>(cols)
表示cols
个执行了值初始化的对象