我试图打印一个vector<int>
使用辅助函数如下:
这不起作用 -
template<class T>
void print(const std::vector<T>& v)
{
std::vector<T>::const_iterator i;
for (i = v.begin(); i != v.end(); i++)
std::cout << *i << " ";
std::cout << std::endl;
}
编辑:我明白了。
但这有效 -
template<class T>
void print(const std::vector<T>& v)
{
// changed std::vector<T> to std::vector<int>
std::vector<int>::const_iterator i;
for (i = v.begin(); i != v.end(); i++)
std::cout << *i << " ";
std::cout << std::endl;
}
我想问以下几点:
- 为什么第一个不起作用,第二个起作用?
- 为相同功能编写函数的替代方法是什么?PS我不希望在函数内部更改任何元素。我想这可以使用 for_each() 算法来完成。但我不确定如何为它编写谓词。