5

'\n'我脑子里放了一个小屁:我想删除std::string. 我更喜欢使用 STL 而不是手动的、多嵌套的 for 循环;唯一的问题是我忘记了如何...

for(...) { std::string::remove_if(...); } ;工作吗?我需要使用std::for_each(...,..., std::string::remove_if(...));吗?还是需要其他东西?

4

2 回答 2

19

第一个想法:删除/擦除习语:

str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());
于 2012-06-14T04:04:16.057 回答
3

如果你有 Boost.Range 它的工作时间会更短:

#include <boost\range\algorithm_ext\erase.hpp>

boost::remove_erase(str, '\n');
于 2013-09-20T15:39:40.667 回答