关于map问题

jinling4388 2009-04-17 11:41:55
我创建了一个std::map <HWND, CString[10]> g_mesInfo;

在赋值时,我想根据HWND遍历CString,找到NULL的来赋值,有什么办法吗?

我在程序结束时需要释放map资源吗?似乎不需要吧,我没有NEW呀!
...全文
184 17 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinling4388 2009-04-20
  • 打赏
  • 举报
回复
没人回答了吗?那我明天结贴了
jinling4388 2009-04-20
  • 打赏
  • 举报
回复
没人回答了吗?那我明天结贴了
jinling4388 2009-04-20
  • 打赏
  • 举报
回复
明白了。是不是这样:

std::map <HWND, CString[10]> g_mesInfo;
void Set(HWND hwnd, CString newString)
{
CString newStrings[10] = g_mesInfo[hwnd];
for (int i = 0; i < 10; i++)
{
if (!newStrings[i].GetLength())
{
newStrings[i] = newString;
break;
}
}
g_mesInfo[hwnd] = newStrings[10];
}
old-six-programmer 2009-04-17
  • 打赏
  • 举报
回复
我可以告诉你
你这种方式无法通过编译
因为无法找到一个数组的构造函数

当然,你可以用vector

map<HWND, vector<CString> >

cyong1000 2009-04-17
  • 打赏
  • 举报
回复
我想lz是想找到CString[10]中元素为NULL的数据来赋值吧!
不知如下做法是否可行:
map <HWND, CString[10]>::iterator iter = g_mesInfo.find(key);
if(iter!=g_mesInfo.end())
{
CString[10] * temp=iter->second;
for(int i=0;i<10;i++)
{
if((*temp)[i]==NULL)
(*temp)[i]=..;
}
}
  • 打赏
  • 举报
回复
map不需要自己释放的,跟用栈里的数据一样,此外键值不能重复。要重复用multi_map
hust_terry 2009-04-17
  • 打赏
  • 举报
回复
CString[10]表示元素是CString对象,不可能为NULL的,只能用Getlength()=0来确定是否使用。

你的这个在程序结束时不需要释放资源,都是类对象,自己会析构掉。
pengzhixi 2009-04-17
  • 打赏
  • 举报
回复
map[HWND]==NULL?//当然这个HWND不能是同一个键
悟迟 2009-04-17
  • 打赏
  • 举报
回复
map不允许key重复吧
wangyaosuper 2009-04-17
  • 打赏
  • 举报
回复
Qlaiaqu 2009-04-17
  • 打赏
  • 举报
回复
我创建了一个std::map <HWND, CString[10]> g_mesInfo;

在赋值时,我想根据HWND遍历CString,找到NULL的来赋值,有什么办法吗?

我在程序结束时需要释放map资源吗?似乎不需要吧,我没有NEW呀!
///////////
map对于第二个参数是已指针形式保存的,你根据HWND获取到了CString的指针,然后遍历CString数组就行了
zhaohongbo83 2009-04-17
  • 打赏
  • 举报
回复
map是自己管理的,待退出的时候就自己去释放了
map的键是绝对不能重复的。
lpf000 2009-04-17
  • 打赏
  • 举报
回复
遍历MAP容器,判断元素是否为空就可以啦
jinling4388 2009-04-17
  • 打赏
  • 举报
回复
顶起来
aaaa3105563 2009-04-17
  • 打赏
  • 举报
回复
学习··········
yinshuwei 2009-04-17
  • 打赏
  • 举报
回复
不需要释放,map自己管理,分配与释放都是自己管。
jinling4388 2009-04-17
  • 打赏
  • 举报
回复
通过编译了,这才是奇怪的地方

65,189

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧