template <class T>class vector{ //this is the part for my vector, which may lead to the error shown below.
protected:
T* arr;
void expand(){
if(size<capacity)return;
if(capacity<con)capacity=con;
T* temp=new T[capacity=2*capacity];
for(int i=0;i<size;i++)temp[i]=arr[i];
delete[] arr;
arr=temp;
temp=NULL;
};
public:
vector(int c=con,int s=0,T v=0){arr=new T[capacity=c];for(size=0;size<s;arr[size++]=v);}
T& operator[](int r)const{return arr[r];}
int insert(int r,const T& e){ //inserting at designated place.
expand();
for(int i=size;i>r;i--)arr[i]=arr[i-1];
arr[r]=e;
size++;
return r;
}
int insert(const T& e){ //inserting at the end
return insert(size,e);
}
};
template<class Tv>class vertex{
public:
Tv data;
vertex(Tv const& e):data(e){}
};
template<class Tv,class Te>class GraphMatrix{
private:
vector<vertex<Tv> > v;
public:
int insert(Tv const& vt){
return v.insert(vertex<Tv>(vt)); //error happens here "expected primary-expression before '>' token."
}
}
int main(){
GraphMatrix<int,int> mail;
int i=1;
mail.insert(i);
}
我正在使用g ++编译器,并且出现了'预期的主表达式'>'令牌'之前的错误。 这是关于模板的问题吗?我怎么修复它? 问题现在发生在将顶点(vt)插入我写的向量(我自己的向量)中。模板错误期望主表达式在'>'标记之前
https://stackoverflow.com/help/mcve – zwol
第二个错误来自**级联**。第一个是关于在顶点 p中使用顶点;一旦失败,“p”就没有意义了。所以忽略那个;它会几乎肯定会消失,一旦你已经修好了第一个。 –
对不起,我做了一些修改,使其更清晰。 – jombo