我想打印矢量元素。以下是我的代码。
搜索后,我发现以下代码及其工作原理:
for(int i=0;i<vec.size();i++)
cout<<vec[i]<<" ";
但我们不能使用迭代器来访问元素吗?如果可能的话,怎么样?
答案 0 :(得分:3)
typename
缺失:
template <typename T>
void printArray(const std::vector<T>& a)
{
for (typename std::vector<T>::const_iterator it = a.begin(); it != a.end(); ++it) {
// ...
}
}
在c ++ 11中,您可能只是写道:
template <typename T>
void printArray(const std::vector<T>& a)
{
for (const auto& e : a) {
std::cout << e << std::endl;;
}
}
答案 1 :(得分:0)
如果你正在使用C ++ 11,你可以auto it = vec.begin()
,这样你就不必担心it
的类型了。