C++/boost : apply a prefix to a string list

标签 c++ string boost prefix

我想给字符串列表添加一个简单的前缀:

Input: "a, b, c, d, e"
Output: ":a, :b, :c, :d, :e"

是否已经为此类操作实现了 boost 库?添加前缀或什至将 boost::format 操作应用于字符串序列?

我搜索了 boost::algorithm::string 库,但一无所获。当然,我可以简单地用 std::for_each 或任何其他方式解决它,但我想知道是否已经做了任何事情。

最佳答案

所以我假设你有一个容器,里面有字符串,每个字符串都应该有前缀: 可能是这样的:

std::for_each(v.begin(), v.end(), [](auto& s){ s.insert(0, ":");});

或者如果 c++11 不是这样的选项:

string& (string::*FP)(size_t pos, const string& str) = &string::insert;
std::for_each(v.begin(), v.end(), std::bind(FP, std::placeholders::_1, 0, ":"));

这将为容器中的每个元素添加前缀 :

至少会在您的示例中产生输出的完整示例如下所示:

int main() {
    std::vector<std::string> v;
    v.push_back("a");
    v.push_back("b");
    v.push_back("c");
    v.push_back("d");
    v.push_back("e");
    std::for_each(v.begin(), v.end(), [](auto& s){ s.insert(0, ":");});    
    for(const auto& s : v)
    {
        std::cout << s << ", ";
    }
    return 0;
}

关于C++/boost : apply a prefix to a string list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40890257/

相关文章:

c++ - 格式化输出运算符标准 iostream 对象可以抛出什么样的异常?

c# - 带有 C# 套接字的字符串中的奇怪字符

javascript - 如何保存很长的字符串?

c++ - 使用 boost::serialization 大大增加了二进制大小

sockets - boost::asio::async_write函数的用途是什么

c++ - 在 boost::python 中公开 boost::scoped_ptr

c++ - 特定键在 std::multimap 中出现了多少次

c++ - 在 C++ 中确定等待同一阻塞操作的线程优先级的好方法是什么?

c++ - wxWidgets wxScrolledWindow 取消之前的绘制

python - Python 中的字符串切片/子字符串/范围