【问题标题】:c++ Removing characters from string using STLc ++使用STL从字符串中删除字符
【发布时间】:2012-06-17 02:16:40
【问题描述】:

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

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

【问题讨论】:

    标签: c++ stl stdstring


    【解决方案1】:

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

    #include <boost\range\algorithm_ext\erase.hpp>
    
    boost::remove_erase(str, '\n');
    

    【讨论】:

    • 也可以在更窄的名称boost::range::remove_erase 和更广泛的包括boost/range/algorithm_ext.hpp 下使用
    【解决方案2】:

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

    str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());
    

    【讨论】:

    • 确实,这很可能是你能得到的最好的。
    • 我需要使用#include &lt;algorithm&gt; 进行编译。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    相关资源
    最近更新 更多