【发布时间】:2017-11-26 11:29:41
【问题描述】:
#include <iostream>
#include <vector>
using namespace std;
void factorial(vector<int> ivec, typename vector<int>::iterator iter)
{
vector<int>::iterator it;
for (it = iter; it != ivec.end(); it++)
cout << *it << endl;
}
int main()
{
vector<int> ivec;
for (int i = 1; i < 8; i++)
ivec.push_back(i);
factorial(ivec, ivec.begin());
return 0;
}
在 Visual Studio 2015 中显示,
但如果我让ivec 成为引用类型(vector<int> & ivec),它将成功。
为什么?
代码很糟糕,很糟糕,很糟糕,所以请你把注意力集中在这个问题上。
【问题讨论】:
标签: c++ function templates iterator containers