我有一个小脑屁:我想在'\n'
中删除换行符std::string
的所有实例。我更喜欢使用STL而不是手动,多嵌套for循环;唯一的问题是我忘记了......
for(...) { std::string::remove_if(...); } ;
会有效吗?我需要使用std::for_each(...,..., std::string::remove_if(...));
吗?或者还需要其他什么东西?
答案 0 :(得分:19)
第一个想法:删除/删除习语:
str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());
答案 1 :(得分:3)
如果你有Boost.Range它的工作时间更短:
#include <boost\range\algorithm_ext\erase.hpp>
boost::remove_erase(str, '\n');