vector如何存储结构体对象地址引用和结构体指针
vector存储结构体首地址引用和存储结构体指针有什么区别吗?
比如如下结构体:
typedef struct
{
int a;
int b;
}nodeType;
vector存储结构体指针可通过如下方法实现:
nodeType *node = new nodeType;
node->a = 1;
node->b =2;
vector<nodeType*> v;
v.push_back(st);
但使用如下方法存储结构体地址引用却不可以:
vector<nodeType&> v;
nodeType node;
node.a = 1;
node.b =2;
v.push_back(&st);
他们两者有什么本质的区别吗,不都是保存了结构体对象的首地址吗?莫非vector不支持这种结构体对象地址引用的形式?
[解决办法]
那么你知道C++里面的引用是必须初始化的吗?而且引用一旦引用一个对象你就不可能改变该引用指向另外一个对象,这也就意味着容器的拷贝复制就失效了。
[解决办法]