【发布时间】:2011-08-07 00:52:03
【问题描述】:
我正在寻找将字符串向量内爆为字符串的最优雅方法。以下是我现在使用的解决方案:
static std::string& implode(const std::vector<std::string>& elems, char delim, std::string& s)
{
for (std::vector<std::string>::const_iterator ii = elems.begin(); ii != elems.end(); ++ii)
{
s += (*ii);
if ( ii + 1 != elems.end() ) {
s += delim;
}
}
return s;
}
static std::string implode(const std::vector<std::string>& elems, char delim)
{
std::string s;
return implode(elems, delim, s);
}
还有其他人吗?
【问题讨论】:
-
为什么称这个函数为内爆?
-
@ColonelPanic,类似于 PHP 的 implode() 方法,它连接数组元素并将它们作为单个字符串输出。我想知道你为什么要问这个问题:)
-
在 Python 中:'delim.join(elems)'。对不起,无法抗拒。 C++ 仍然没有包含电池。 :-) 问题在 2021 年已经 10 岁了,而且没有一个有效的 和 优雅的答案(尾随分隔符、过多的运行时间、更多 #include 行,而幼稚的实现......)
标签: c++ string stl stdstring implode