Gitee提交代码的网址 Gitee/tanqinqin
C++11 tutorial C++11 tutorial
C++11 and more C++more
C代码要用到C++参考: Reference - C++ Reference (cplusplus.com)
- new, malloc, calloc, realloc
malloc负责在堆栈上开辟空间。内存连续
char *p = (char *)malloc(sizeof(array[0]));
- 什么时候用new, 什么时候用malloc?
- C malloc, C++ new
- 自己定义的object,或者需要初始化data member用new, 因为它自动会去调用构造函数。内建类型一般用malloc,可以更方便控制
- 内建类型:
int *p = (int*)malloc(sizeof(int)*30);
- 定义vector的二维数组N1*N2:
vector<vector<int>> dp(N1, vector<int>(N2));
vector<vector<int>> dp(N1, vector<int>(N2, value));
- C++11匿名函数:
编译C++11的代码: g++ -std=c++11 traverse.cpp -o traverse
lambda匿名函数
- 通常用于回调函数。
- 可以传参,可以返回值(通过参数是否添加&来判断),传的值只是传进去的参数又带回来一个新的值。
- 没有函数名。
[] (int x) {
std::cout << x << “ ”;
}
[]
表示传递外部环境元素(int)
传递参数
- 如何传递外部环境参数?
[=] (int &x)
函数里面可以用到函数外面的变量,并且可以改变外部变量的值,外部变量都是通过指针传进来的。[&] (int &x)
函数里面可以用到函数外面的变量,但不能改变外部变量的值,外部变量通过值传递进来。[] (int x)
外部变量的值在函数里面不可见。