想麻烦问问看函数模板的形参到底应该什么时候传递const引用,什么时候使用复制。
例如:
template
void printl(Iterator v1, Iterator v2) //正确的
{
while(v1 != v2){
cout << *v1++ <<endl;
}
}
template
void printl(const Iterator &v1, const Iterator &v2) //错误的
{
while(v1 != v2){
cout << *v1++ <<endl;
}
}
主函数:
int main()
{
vector vec;
vec.push_back(1); vec.push_back(2); vec.push_back(3);
printl(vec.begin(),vec.end());
return 0;
}
为什么这里形参用迭代器的引用会出错呢。谢谢。