我想给字符串列表添加一个简单的前缀:
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/