项目场景:
在写模拟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