项目场景:
在写模拟vector时遇到的bug,整体我当时写的vector情况如下:
问题描述
语法报错:
template<class T>
void print_vector(const vector<T>& v)
{
for (size_t i = 0; i < v.size(); i++)
{
cout << v[i] << " ";
}
cout << endl;
vector<T>::const_iterator it = v.begin();
//auto it = v.begin();
while (it != v.end())
{
cout << *it << " ";
++it;
}
cout << endl;
}
原因分析:
这里是因为编译器在编译时候进行语法检查,不确定iterator是一个类型还是类内的静态变量,因此报出了语法错误的提示。
解决方案:
明确告诉编译器这是一个类型,在前面加typename即可。
EOF