我有一個小腦袋:我想在std::string
中刪除換行符'\n'
的所有實例。我寧願使用STL而不是手動,多嵌套for循環;唯一的問題是我忘了如何...C++使用STL從字符串中刪除字符
會for(...) { std::string::remove_if(...); } ;
工作?我需要使用std::for_each(...,..., std::string::remove_if(...));
嗎?或者會需要其他東西?
我有一個小腦袋:我想在std::string
中刪除換行符'\n'
的所有實例。我寧願使用STL而不是手動,多嵌套for循環;唯一的問題是我忘了如何...C++使用STL從字符串中刪除字符
會for(...) { std::string::remove_if(...); } ;
工作?我需要使用std::for_each(...,..., std::string::remove_if(...));
嗎?或者會需要其他東西?
第一個想法:刪除/擦除成語:
str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());
如果你有Boost.Range它的作品甚至更短:
#include <boost\range\algorithm_ext\erase.hpp>
boost::remove_erase(str, '\n');
也可以在較窄的名稱'boost :: range :: remove_erase'下並通過更廣泛的'boost/range/algorithm_ext.hpp' – Stein
+1爲了提高效率:) – Mahesh
事實上,這是最有可能你會得到最好的。 – chris
我需要使用'#include'來編譯。 –
Westy92