graph.h
struct Edge {
int from;
int to;
int elabel;
unsigned int id;
Edge(): from(0), to(0), elabel(0), id(0) {};
};
vector<Edge>
和vector<Edge*>
之间有什么区别?我知道vector<Edge>
是一个存储Edge
个对象的数组,但Edge*
对象是什么?
答案 0 :(得分:2)
Edge*
类型是指向边缘的指针。所以vector<Edge*>
是一个存储指针到边的向量。
向量本身不存储对象,只存储指向这些对象的指针。这尤其意味着当指针的生命周期结束时,指向的对象不会被自动删除。
答案 1 :(得分:1)
Edge*
是指向Edge
的指针。 Read up on Pointers in C++.