【发布时间】:2011-07-24 00:07:43
【问题描述】:
我正在编写一个实用函数,它将采用元素向量(可以是字符串、整数、双精度、字符)并连接成单个字符串并返回它。它看起来像这样:
template<typename T>
std::string convert2Str(std::vector<T> const& vec)
{
std::ostringstream sStream;
for (size_t k=0; k<vec.size(); ++k) {
sStream << vec[k] << " ";
}
return sStream.str();
}
我想让这个函数更通用:
- 首先使用迭代器而不是使用
vector<T>的索引。我试过这个std::vector<T>::const_iterator it = vec.begin()在循环之前和编译器给了我一个错误: : 错误: 预期;在它之前 当我将上述定义更改为std::vector<std::string>::const_iterator it = vec.begin()时,错误消失了。所以,看起来我没有遵循正确的语法,请告诉我它是什么 - 第二个是通过使第一个参数容器独立来使函数更通用。给定任何容器(
vector、list、queue、deque等)我想做和上面一样的事情。我尝试在 stackoverflow 中搜索,但没有找到满意的答案。
【问题讨论】: