STL的vector容器中可以存放指针吗?

来源:百度知道 编辑:UC知道 时间:2024/05/01 04:05:43
我在vector中存放带有指针成员变量的对象总是出错,是不是vector中不能存放指针??望高手指教
AState f_lowest=*(open_list.begin());
AState sta4=f_lowest;
closed_list.push_back(f_lowest);
AState sta3=f_lowest;
其中closed_list为vector,sta4中的指针正确,而push_back(f_lowest)后,sta3中的指针就出错了

可以。
  Stl容器可以存放内建类型、自定义类型、指针类型的元素。
  用指针就需要自己手动的去管理这些指针所指向的内存,stl容器确实可以动态申请内存使自己变大以容纳更多的元素,但这些动态空间存放的是指针,而并不是指针指向的动态内存,指针内存当然需要去管理,如果实在不想做这些管理工作,可以去使用智能指针。

vector 是可以放指针的
比如在做基类和派生类的时候
vector<Base *> a;
Son b;
a.push_back(&b);
这些操作是允许的
希望能给你些帮助