c++ stl中map和map嵌套的问题

wangtianxi 2011-12-30 07:30:21
class C
{
public:
int category;
double weight;
};
typedef map<int,C*> M;
M* m1;
c1=new C();
c1->category=11;
c1->weight=0.22;
m1->insert(pair<int,C*>(1,c1));
这样写得程序编译不报错,运行时会跳掉,为什么啊?
我想写两个map的嵌套
typedef map<int,C*> A;
A *a;
typedef map<int,A*> B;//这个value是被嵌套的一个map的指针
B b;
这样写行不行啊?map嵌套map该怎么合理使用?效率怎么样,还有当value是一个对象的时候怎样释放内存,是自动的吗?
...全文
713 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
追求执着 2011-12-31
  • 打赏
  • 举报
回复
shangwu_35 2011-12-31
  • 打赏
  • 举报
回复
其实挺烦这种用别人的东西还怎么复杂怎么来的人。
有种自己写呀。
LoveIOS 2011-12-31
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 shangwu_35 的回复:]

其实挺烦这种用别人的东西还怎么复杂怎么来的人。
有种自己写呀。
[/Quote]
更烦你这种人,只知道自己上嘴皮碰下嘴皮。
楼主要这样表示,难道还能别的表示。
LoveIOS 2011-12-30
  • 打赏
  • 举报
回复

#include "stdafx.h"
#include <stdio.h>
#include <map>
#include <iostream>
using namespace std;
class C
{
public:
int category;
};
typedef map<int,C*> M;
int main(int argc, char* argv[])
{
map<int, C*> myMap1,myMap2;
map< int, M* > myMap;
C c1,c2,c3,c4;
c1.category = 1;
c2.category = 2;
c3.category = 3;
c4.category = 4;
myMap1[1] = &c1;
myMap1[2] = &c2;
myMap2[1] = &c3;
myMap2[2] = &c4;

myMap[1] = &myMap1;
myMap[2] = &myMap2;

map< int, M* >::iterator it, itend;
it = myMap.begin();
itend = myMap.end();
for (; it != itend; it++)
{
map< int, C*>::iterator it1, it2;
it1 =(*(it->second)).begin();
it2 =(*(it->second)).end();
for ( ; it1 != it2; it1++)
{
cout<<(it1->second)->category<<endl;
}
}
return 0;
}


map套用map,这样用
wangtianxi 2011-12-30
  • 打赏
  • 举报
回复
如果value部分使用指针的话是不是可以节约很多开销?但是怎么用啊
wangtianxi 2011-12-30
  • 打赏
  • 举报
回复
第一次问问题,求大家帮助啊,感激不尽啊

65,187

社区成员

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

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