Kirai

Keep going


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

[C++] 闭包的capture(捕获)方式

发表于 2018-10-19 | 分类于 编程语言 | 评论数:

最近刷题喜欢用闭包把函数全部写到main中,通常一个函数可以这样:

1
function<int(int)> f = [](int x) { return x; };

但是在闭包[]中可以添加=或&两个运算符,查过cpp reference后,这个叫capture(捕获),即使用闭包外的变量的方式。讨论这两个运算符:

[=](){}:这是对闭包外变量进行const引用的形式,即不允许修改闭包外的变量。

1
2
3
4
5
6
7
int x = 5;
auto p = [=](){
x = 4;
cout << x << endl;
};
p();
cout << x << endl;

这段代码编译会报错,因为=捕获不允许修改外变量。

[&](){}:这是对闭包外变量进行引用的形式,可以修改闭包外的变量,并且保留为修改后的值。

1
2
3
4
5
6
int x = 5;
auto p = [&](){
x = 4;
};
p();
cout << x << endl;

而这段代码会输出4,因为闭包捕获到外部变量后将其修改并保留。

除此之外,还可以声明特定变量使用特定的捕获方式:

1
2
3
[a,&b]。将a按值进行传递,b按引用进行传递。
[=,&a,&b]。除a和b按引用进行传递外,其他参数都按值进行传递。
[&,a,b]。除a和b按值进行传递外,其他参数都按引用进行传递。

[GCJKickstart2018RoundB] B. Sherlock and the Bit Strings

发表于 2018-10-18 | 分类于 题解 , Kickstart | 评论数:

https://code.google.com/codejam/contest/10284486/dashboard#s=p1

给一个长为n的01串,现在规定在串的一些区间$[A_i,B_i]$中至少存在$C_i$个1,求满足条件的字典序为第$p$大的串。

阅读全文 »

[GCJKickstart2018RoundB] A. No Nine

发表于 2018-10-18 | 分类于 题解 , Kickstart | 评论数:

题目链接:https://code.google.com/codejam/contest/10284486/dashboard#s=p0

求$[L,R]$内不被9整除且每一位都不是9的数的个数。

阅读全文 »

[GCJKickstart2018RoundA] B. Lucky Dip

发表于 2018-10-18 | 分类于 题解 , Kickstart | 评论数:

题目链接:https://code.google.com/codejam/contest/9234486/dashboard#s=p1

有n个数,允许k次“取一个数再放回重新取”的操作,一个人希望拿到最大的那个数字。求取到数字最大的期望。

阅读全文 »

[GCJKickstart2018RoundA] A. Even Digits

发表于 2018-10-18 | 分类于 题解 , Kickstart | 评论数:

题目链接:https://code.google.com/codejam/contest/9234486/dashboard#s=p0

给一个数,这个数每次只能+1或-1,问把这个数变成每一位都是偶数的最少步数。

阅读全文 »

[读书笔记] Neural Networks and Deep Learning Chapter 1

发表于 2018-10-08 | 更新于 2018-10-12 | 分类于 读书笔记 | 评论数:

这是我阅读在线书籍《Neural Networks and Deep Learning》的笔记,这篇博文是第一章的。没什么营养,因为大部分都知道了,于是草草略过。

章节链接: http://neuralnetworksanddeeplearning.com/chap1.html

阅读全文 »

[Nowcoder199A] 分组(dfs,拉姆齐定理, 随机)

发表于 2018-10-07 | 分类于 题解 , Nowcoder | 评论数:

题目链接:https://www.nowcoder.com/acm/contest/199/A

意思就是给你一个无向图染色,每个点最多有一个相邻点可以染成同色。

阅读全文 »

[Nowcoder208A] Birthday(最小费用最大流)

发表于 2018-10-06 | 更新于 2018-10-07 | 分类于 题解 , Nowcoder | 评论数:

题目链接:https://www.nowcoder.com/acm/contest/206/A

题意很简单,给你n个球,m个桶。现在每个球最多可以丢到两个桶中的一个,同时规定每个桶中球的平方和为代价。现在希望你找一个方案,使得代价最小。

阅读全文 »

[总结] 反素数

发表于 2018-10-05 | 更新于 2018-10-08 | 分类于 算法总结 | 评论数:

素数的定义可以为:因子只有2个的数(一个是1,另一个是本身),也就是因子最少的数。

那么,反素数可以定义成因子数最多的数,假如因子个数相同那么是最小的那个数,反素数是相对于一个集合来说的(比如在$n$个数以内的数)。

简而言之,因素最多并且值最小的数,就是反素数。

阅读全文 »

[Nowcoder190H] CSL的校园卡

发表于 2018-09-15 | 分类于 题解 , Nowcoder | 评论数:

题目链接:https://www.nowcoder.com/acm/contest/190/H

中文题面不解释。

阅读全文 »
1…456…11
Kirai

Kirai

I love this world though she hurts me so deep.

103 日志
18 分类
75 标签
RSS
Intro E-Mail Bilibili OSU! Codeforces Topcoder
Links
  • orz Gaga
  • orz Bin神
  • orz coswindy
  • orz 蔡队
  • 旧题解博客(cnblogs)
© 2019 Kirai
由 Hexo 强力驱动 v3.7.1
|
主题 — NexT.Gemini v6.3.0

博客全站共70.6k字