在类中使用Vector容器的有关问题

在类中使用Vector容器的问题
vector< _ShopGoodsList> ShopGoodsList; //将物品列表写入至这个容器中去

这个是 在一个类中声明的 vector 容器的变量


typedef struct _ShopGoodsList //这个是 _ShopGoodsList 结构 
{
CString GoodsName;
DWORD LocationCount;
void DataClear()
{
 GoodsName="";
 LocationCount=1;
}
}_ShopGoodsList;

求助,我这样写,在问 ShopGoodsList 中使用push_back() 压入元素的时候,程序就会崩溃
这个是为什么??

但是我将 
vector< _ShopGoodsList> ShopGoodsList; 声明为全局的,就没有问题了

求解,崩溃的原因是什么,如何解决他?

------解决方案--------------------
vector本身负责管理内存,有自己的析构函数,如果你把它声明为局部的,
那么编译器会产生调用verctor的析构函数的代码,这个析构函数会释放存储vector
中的对象的内存。当你声明为全局时,这个释放代码的执行时机和局部不一样了。
所以全局没问题。因为全局的释放代码实在程序结束时的,那是你存储在vector中的
对象已经被正确释放了,而局部的vector它释放时存储的对象还在被使用。
你明白了么?
------解决方案--------------------
解决这个问题,关键是vector中存储的对象的生命周期是怎样的? 对象的申请的释放都是
需要管理的,不像JAVA或者C#那些自己有垃圾回收机制的语言,这是C++的基本功之一。
------解决方案--------------------
要看你是怎么如何使用的?
------解决方案--------------------
就是啊,楼主检查一下vector的使用方式