为什么这段代码不起作用?
我得到的错误是
T *Vector<T>::begin(Vector<T> &)' : expects 1 arguments - 0 provided
代码:
#include <iostream>
using namespace std;
template<typename T> class Vector
{
public:
T* elem;
int sz;
Vector()
{
elem = new T[2];
sz = 2;
}
template<typename T> T* begin(Vector<T>& x)
{
return &x[0];
}
template<typename T> T* end(Vector<T>& x)
{
return x.begin()+x.size();
}
unsigned int size()
{
return sz;
}
};
int main()
{
Vector<int> ea;
for(auto& s: ea)
// do something
return 0;
}
我也不确定 begin() 和 end() 的向量参数,他们为什么需要它?它们已经是成员函数,因此它们应该将“this”作为参数。我写了这段代码,但函数取自一本书(他们是朋友吗??)