我想编写一个函数,它将获取一个stl容器(如set,vector或list),然后迭代内容,然后将它们附加到字符串并返回字符串.
像这样的东西.
// I dont know how to do this. Just using stl::container for meanings sake Not sure if such a thing exists?
template<typename T, typename Container = stl::container<T> >
void JoinToString(const Container<T> cont, const char * delim, string &str)
{
stringstream s;
Container<T>::const_iterator it = cont.begin, last = cont.end();
while(it != last)
{
s<<(*it);
++it;
if(it == last)
break;
s<<delim;
}
str = s.str();
}
Run Code Online (Sandbox Code Playgroud)
我想要一些这样的效果.不知道如何编写这样的代码.
STL的风格是在传递begin和end迭代器的任何算法,而不是容器本身:这使事情变得普通,并允许指针使用原生的载体.一般的C++样式注意事项也建议返回a std::string而不是使用引用参数.