2つのstd::stringがあります。入力文字列を指定して、次のようにします。
- すべての文字を大文字にする
- 大文字を出力文字列に割り当てます。
なぜこれが機能するのですか?
std::string s="hello";
std::string out;
std::transform(s.begin(), s.end(), std::back_inserter(out), std::toupper);
しかし、これはそうではありません(プログラムがクラッシュする結果になります)?
std::string s="hello";
std::string out;
std::transform(s.begin(), s.end(), out.begin(), std::toupper);
これは機能するためです(少なくとも同じ文字列では:
std::string s="hello";
std::string out;
std::transform(s.begin(), s.end(), s.begin(), std::toupper);