“对象”和“对象*”之间的区别

时间:2012-03-03 08:14:07

标签: c++

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*对象是什么?

2 个答案:

答案 0 :(得分:2)

Edge*类型是指向边缘的指针。所以vector<Edge*>是一个存储指针到边的向量。

向量本身不存储对象,只存储指向这些对象的指针。这尤其意味着当指针的生命周期结束时,指向的对象不会被自动删除。

答案 1 :(得分:1)

Edge*是指向Edge的指针。 Read up on Pointers in C++.