语法记录()

一.STL

1.set

禁用:不可直接修改元素(常指针)
二分查找 : set s; auto t = s.lower_bound(x); //返回第一个大于等于x的指针(找不到这个点的话*t = 0)
指针移动访问前后元素: auto t = s.begin(); t ++; cout << *t;

2.map

访问前一个指针和后一个指针: auto it = map.find(i); auto pre = prev(it); auto ne = next(it);
(在维护区间时候有奇效)
map是按照key排序,而非value;

3.list

list可以在其头部和尾部添加值,也可以在头部和尾部删除值(是vector和deque的叠加版)

4.basic_string:

两边加元素: basic_string s; s = s + (int)x + s

二.匿名函数

所谓匿名函数,其实类似于python中的lambda函数,其实就是没有名字的函数。使用匿名函数,可以免去函数的声明和定义。这样匿名函数仅在调用函数的时候才会创建函数对象,而调用结束后立即释放,所以匿名函数比非匿名函数更节省空间

1.sort(代替cmp)

[] : 使用内部变量

	vector<int> ans;
    for(int i = 1; i <= 10; i ++ ) ans.push_back(i);
    sort(ans.begin(), ans.end(), [](int i, int j){
        return i > j;
    });

2.dfs

[&] : 用到的任何外部变量都隐式按引用捕获

function<void(int)> dfs = [&](int u)  {
	...
};
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值