@@ -81,7 +81,7 @@ auto print_if_le_100 = []( auto first, auto last )
81
81
if ( *iter <= 100 )
82
82
std::cout << *iter ;
83
83
}
84
- } ;
84
+ } ;
85
85
86
86
87
87
// 値を2倍して出力
@@ -91,7 +91,7 @@ auto print_twice = []( auto first, auto last )
91
91
{ // 特別な処理
92
92
std::cout << 2 * (*iter) ;
93
93
}
94
- } ;
94
+ } ;
95
95
96
96
97
97
// 値を出力するたびに改行を出力
@@ -101,7 +101,7 @@ auto print_with_newline = []( auto first, auto last )
101
101
{ // 特別な処理
102
102
std::cout << *iter << "\n"s ;
103
103
}
104
- } ;
104
+ } ;
105
105
~~~
106
106
107
107
これを見ると、for文によるイテレーターのループは全く同じコードだとわかる。
@@ -1115,7 +1115,7 @@ auto generate_n = []( first, n, gen )
1115
1115
auto last2 = remove( first, last, value ) ;
1116
1116
~~~
1117
1117
1118
- この例では、` remove ` は` [first,last) ` から値` value ` に等しい要素を取り除いたイテレーターの範囲を戻り地として返す 。その戻り値が` last2 ` だ。` [first,last2) ` が値を取り除いた後の新しいイテレーターの範囲だ。
1118
+ この例では、` remove ` は` [first,last) ` から値` value ` に等しい要素を取り除いたイテレーターの範囲を戻り値として返す 。その戻り値が` last2 ` だ。` [first,last2) ` が値を取り除いた後の新しいイテレーターの範囲だ。
1119
1119
1120
1120
` remove ` を呼び出しても元のvectorの要素数が変わることはない。` remove ` はvectorの要素の値を変更するだけだ。
1121
1121
@@ -1162,7 +1162,7 @@ int main()
1162
1162
1163
1163
` remove ` は現在知っている知識だけではまだ完全に実装できない。以下は不完全な実装の例だ。` remove ` を完全に理解するためには` ムーブセマンティクス ` の理解が必要だ。
1164
1164
1165
- ~~~
1165
+ ~~~ cpp
1166
1166
auto remove_if = []( auto first, auto last, auto pred )
1167
1167
{
1168
1168
// removeする最初の要素
@@ -1184,7 +1184,7 @@ auto remove_if = []( auto first, auto last, auto pred )
1184
1184
*removing = *remaining ;
1185
1185
++removing ;
1186
1186
}
1187
-
1187
+
1188
1188
}
1189
1189
// 新しい終端イテレーター
1190
1190
return removing ;
0 commit comments