我正在寻找最优雅的方法将字符串向量内部转换为字符串.以下是我现在使用的解决方案:
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);
}
Run Code Online (Sandbox Code Playgroud)
那里还有其他人吗?
std :: string size()是否为O(1)操作?
我正在使用的STL的实现是VC++内置的
我一直在阅读Accelerated C++,我不得不说这是一本有趣的书.
在第6章中,我必须使用<algorithm>中的函数将vector <string>连接成单个字符串.我可以使用累积,但它没有帮助,因为字符串容器只能push_back字符.
int main () {
using namespace std;
string str = "Hello, world!";
vector<string> vec (10, str);
// Concatenate here?
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如何将字符串连接在一起?
为了将字符串拆分为向量,我使用
std::vector<std::string> v;
boost::split(v, input, boost::is_any_of("|"));
Run Code Online (Sandbox Code Playgroud)
Boost或STL中是否存在执行此操作相反功能的函数,即形式为join的函数
join(v, output, "|")
Run Code Online (Sandbox Code Playgroud)