STL map容器内存分配问题,请高手指点下,谢谢。。。
std::map<CString,var_info>Varlist;mfc中如上定义了map变量Varlist,用来按不同名字存储数据,var_info是个结构体如下,要...
std::map<CString,var_info> Varlist;
mfc中如上定义了map变量Varlist,用来按不同名字存储数据,var_info是个结构体如下,要存储的UINT* value可能有几千个,用map容器来存储,不手动申请内存可以吗?资料上说map变量是自动管理内存的。我value中存储的数据可能有几千个,而且有一百多个变量要存进Varlist中,如果手动需手动分配内存,该如何做呢??麻烦高手给我答疑,谢谢。。
struct var_info
{
UINT* value;
UINT max;
UINT min;
BOOL Selected;
}; 展开
mfc中如上定义了map变量Varlist,用来按不同名字存储数据,var_info是个结构体如下,要存储的UINT* value可能有几千个,用map容器来存储,不手动申请内存可以吗?资料上说map变量是自动管理内存的。我value中存储的数据可能有几千个,而且有一百多个变量要存进Varlist中,如果手动需手动分配内存,该如何做呢??麻烦高手给我答疑,谢谢。。
struct var_info
{
UINT* value;
UINT max;
UINT min;
BOOL Selected;
}; 展开
1个回答
展开全部
手动分配内存的话,则要这么分配,首先分配结构体,例如 :
var_info test_Info;
pnifo.value = new UINT[sizeof(UINT)*3000];
typedef map<int,var_info> MapInfo;
MapInfo Varlist;
Varlist.insert(MapInfo::value_type(_T("Monday"),infoMation));
具体你要分配多少千个数据,就将3000改为你自己想要的数目就行了。
请注意!!!当你使用完这个容器后,再退出程序时要用迭代器重头开始
遍历,将它们一一delete掉,并且置空。
请采纳,谢谢。
var_info test_Info;
pnifo.value = new UINT[sizeof(UINT)*3000];
typedef map<int,var_info> MapInfo;
MapInfo Varlist;
Varlist.insert(MapInfo::value_type(_T("Monday"),infoMation));
具体你要分配多少千个数据,就将3000改为你自己想要的数目就行了。
请注意!!!当你使用完这个容器后,再退出程序时要用迭代器重头开始
遍历,将它们一一delete掉,并且置空。
请采纳,谢谢。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询