回答編集履歴
2
追記
test
CHANGED
@@ -41,3 +41,45 @@
|
|
41
41
|
```
|
42
42
|
|
43
43
|
条件を関数呼び出しにインラインで書けるようになったので可読性も上がります。
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
---
|
48
|
+
|
49
|
+
他の使い道としては、条件によって処理の一部分だけ変えたいというときに使うとすっきり書けることがあります。
|
50
|
+
|
51
|
+
```C++
|
52
|
+
|
53
|
+
int sumx(const std::vector<int> &vect, bool odd)
|
54
|
+
|
55
|
+
{
|
56
|
+
|
57
|
+
std::function<bool(int)> cond;
|
58
|
+
|
59
|
+
if(odd)
|
60
|
+
|
61
|
+
cond = [](int x){return x % 2 != 0;};
|
62
|
+
|
63
|
+
else
|
64
|
+
|
65
|
+
cond = [](int x){return x % 2 == 0;};
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
int sum = 0;
|
70
|
+
|
71
|
+
for(auto&& x : vect)
|
72
|
+
|
73
|
+
{
|
74
|
+
|
75
|
+
if(cond(x))
|
76
|
+
|
77
|
+
sum += x;
|
78
|
+
|
79
|
+
}
|
80
|
+
|
81
|
+
return sum;
|
82
|
+
|
83
|
+
}
|
84
|
+
|
85
|
+
```
|
1
余分な文章を削除
test
CHANGED
@@ -26,7 +26,7 @@
|
|
26
26
|
|
27
27
|
std::sort(vect.begin(), vect.end(), Comp());
|
28
28
|
|
29
|
-
```
|
29
|
+
```
|
30
30
|
|
31
31
|
|
32
32
|
|