我有一个问题,如果我有一个STL矢量,我可以像
一样写std::vector<int> *p;
但我无法决定是否会在任何情况下使用它?在这种情况下,如果我通过p?
调整指针向量的大小,那么指针p会发生什么我可能听起来很愚蠢,但这些问题只是想到了,我能够用g ++编译事物std::vector<int> *p
。
答案 0 :(得分:3)
说:
std::vector *p;
您正在声明指向Vector的指针。现在,您需要分配内存位置来保存Vector对象的内存内容,而不是单个元素。之后,您可以根据自己的意愿自由添加,删除,删除和更新单个元素。
至于调整向量的大小,p所指的内存不会发生任何变化,只有与Vector对象相关的内存内容才会发生变化。
这种结构的一个用途是具有动态矢量数组。假设您需要维护节点的邻接列表,但在运行时之前,您无法提前确定将出现多少节点。