このコードが機能しないのはなぜですか?
私が得ているエラーは
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」が必要です。私はこのコードを書きましたが、関数は本から取られています (彼らは友達ですか??)