结构体如下
typedef struct _menuInfo
{
int menu_type;
std::string menu_name;
int menu_id;
std::string menu_libName;//std 对象
}MenuInfoStruct;
typedef std::vector<MenuInfoStruct*> MenuInfoStVec;
在vector加入结构体指针
因为结构体里面有std::string对象,不能使用malloc来分配内存,所以使用new
MenuInfoStruct* MenuItem = new MenuInfoStruct;
循环加入到vector里面,代码省略
最后释放的时候,里面的指针必须逐一释放。
for(int i=0;i< MenuVec.size();i++)
{
if(MenuVec[i] !=NULL)
{
delete MenuVec[i];
MenuVec[i] = NULL;
}
}
std::vector<MenuInfoStruct*>().swap(MenuVec);//这一句不能省略
std::cout<<"size="<<MenuVec.size()<<std::endl;//结果为0
std::cout<<"capacity="<<MenuVec.capacity()<<std::endl;//结果为0