我所找到的只是boost::algorithm::string::join
。然而,仅使用 Boost 进行连接似乎有点矫枉过正。那么也许有一些经过时间考验的食谱?
UPDATE:
抱歉,问题标题不好。
我正在寻找用分隔符连接字符串的方法,而不仅仅是一一连接。
既然你正在寻找一个recipe,继续使用 Boost 中的那个。一旦你克服了所有的通用性,它就不会太复杂:
- 分配一个地方来存储结果。
- 将序列的第一个元素添加到结果中。
- 当有其他元素时,请将分隔符和下一个元素附加到结果中。
- 返回结果。
这是一个在两个迭代器上运行的版本(与 Boost 版本相反,Boost 版本在一个迭代器上运行)range.
template <typename Iter>
std::string join(Iter begin, Iter end, std::string const& separator)
{
std::ostringstream result;
if (begin != end)
result << *begin++;
while (begin != end)
result << separator << *begin++;
return result.str();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)