2016-06-25 6 views
0

This pagebegin()を使用し、this one and many othersstd::back_inserterを使用することを推奨します。私はこれについて1時間ほど読んできましたが、他のものを使用する確かな理由やその違いを見つけることはできません。誰かが私を正しい方向に向けることができますか?をstd :: transformで使用すると、begin()またはback_inserter()を使用する方が良いでしょうか?

+0

彼らは完全に異なることを行います。 –

答えて

2

これらは完全に異なることを行う:

std::string a = "12345", b = "67890", c = b; 

std::transform(a.begin(), a.end(), b.begin(), [](char ch) { return ch; }); 
// b is now "12345" 

std::transform(a.begin(), a.end(), std::back_inserter(c), [](char ch) { return ch; }); 
// c is now "6789" 
+4

bがaより小さければ、最初はUBになり、2番目は安全です。 –

関連する問題