gpt4 book ai didi

c++ - 如何在具有迭代器的 STL 容器上模板化函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:23:56 26 4
gpt4 key购买 nike

我想编写一个函数,它将接受一个 STL 容器(如集合、 vector 或列表)然后迭代内容,然后将它们附加到字符串并返回字符串。

像这样。

// 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();
}

我想要这样的东西。不确定如何编写这样的代码。

最佳答案

STL 风格是将 beginend 迭代器传递给任何算法,而不是容器本身:这保持通用,并允许使用原生 vector 指针。一般的 C++ 风格考虑因素还建议返回 std::string 而不是使用引用参数。

关于c++ - 如何在具有迭代器的 STL 容器上模板化函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4657767/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com