0

我熟悉 std::transform(data.begin(), data.end(), data.begin(), ::toupper) 的用法,它可以将 data 中的字符串全部更改为大写。但是,我想知道是否有一个干净的解决方案可以在不修改源代码的情况下获得字符串的全大写版本?制作源副本然后在副本上调用 std::transform 的解决方法,然后返回副本似乎有点像 kludge,我想知道是否有更有效和优雅的解决方案。

我正在寻找一个纯 C++11 解决方案……不依赖于任何广泛可用的 C++ 库,例如 boost。

4

1 回答 1

2

根据上面 Igor 的评论,解决方案是在目标上使用 std::back_inserter .... std::transform(src.begin(), src.end(), std::back_inserter(dest), ::toupper);

于 2014-11-10T18:58:20.597 回答