回答編集履歴
2
注釈追加
test
CHANGED
@@ -5,6 +5,8 @@
|
|
5
5
|
|
6
6
|
|
7
7
|
raccyさんとは別のやり方で作ってみました。文字列領域を若干多めに取ることになりますが、コピーは最小限だと思います。
|
8
|
+
|
9
|
+
※reserveで領域サイズを決め打ちしているので、もしかしたら領域の節約になっているかもしれません。
|
8
10
|
|
9
11
|
|
10
12
|
|
1
cbeginとcendはC\+\+11からなので訂正
test
CHANGED
@@ -48,17 +48,17 @@
|
|
48
48
|
|
49
49
|
str.reserve(targetStr.length());
|
50
50
|
|
51
|
-
auto iter = targetStr.
|
51
|
+
auto iter = targetStr.begin();
|
52
52
|
|
53
|
-
while(iter != targetStr.
|
53
|
+
while(iter != targetStr.end())
|
54
54
|
|
55
55
|
{
|
56
56
|
|
57
|
-
auto iter2 = std::find_if(iter, targetStr.
|
57
|
+
auto iter2 = std::find_if(iter, targetStr.end(), IfCrLf());
|
58
58
|
|
59
59
|
str.append(iter, iter2);
|
60
60
|
|
61
|
-
iter = std::find_if(iter2, targetStr.
|
61
|
+
iter = std::find_if(iter2, targetStr.end(), IfNotCrLf());
|
62
62
|
|
63
63
|
}
|
64
64
|
|