力扣刷题总结-持续更新

这篇博客主要总结了力扣刷题过程中的C++11使用经验,包括new与malloc的区别,何时使用new进行对象分配,以及C++11的匿名函数和lambda表达式的应用。还详细介绍了pair容器的使用,阐述了如何通过pair传递和存储外部环境的参数。同时,提供了C++11参考教程链接和编译代码的方法。

Gitee提交代码的网址 Gitee/tanqinqin
C++11 tutorial C++11 tutorial
C++11 and more C++more
C代码要用到C++参考: Reference - C++ Reference (cplusplus.com)

  1. new, malloc, calloc, realloc
    malloc负责在堆栈上开辟空间。内存连续
	char *p = (char *)malloc(sizeof(array[0]));
  1. 什么时候用new, 什么时候用malloc?
  • C malloc, C++ new
  • 自己定义的object,或者需要初始化data member用new, 因为它自动会去调用构造函数。内建类型一般用malloc,可以更方便控制
  • 内建类型:
	int *p = (int*)malloc(sizeof(int)*30);
  1. 定义vector的二维数组N1*N2:
 	vector<vector<int>> dp(N1, vector<int>(N2));
	vector<vector<int>> dp(N1, vector<int>(N2, value));
  1. C++11匿名函数:

编译C++11的代码: g++ -std=c++11 traverse.cpp -o traverse

lambda匿名函数

  • 通常用于回调函数。
  • 可以传参,可以返回值(通过参数是否添加&来判断),传的值只是传进去的参数又带回来一个新的值。
  • 没有函数名。
	[] (int x) {
	std::cout << x << “ ”;
	}

[] 表示传递外部环境元素
(int) 传递参数

  • 如何传递外部环境参数?

[=] 截取外部作用域中的变量,并拷贝一份在函数体中使用。
[&] 截取外部作用域中的变量,并作为引用在函数体中使用。
[] 外部变量的值在函数里面不可见。

pair container

const pair<int, string> valueSymbols[] = {
	{1000, "M"},
	{900, "CM"},
	// ......
};

for (const auto &[value, symbol]: valueSymbols) {
	// ... 
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值