![]() |
1
3
我不确定您是否需要一个映射结构,其中的值是指向另一个映射的指针。这个
另一方面,整个与行指针的游戏只会给你带来脖子上的疼痛。
如果使用
下面是用替换行指针的示例代码
输出 :
|
![]() |
2
5
所以要插入它,你需要一个
话虽如此,您应该使用C++值语义,而不依赖于原始指针:
也就是说
这样可以获得更好的性能并避免内存泄漏。
也值得研究智能指针(例如。
|
![]() |
3
2
你可以扔掉你的什么都不做的映射类,停止使用指针,然后
注意内部地图是 完全没有意义 在这个阶段,因为他们只有一个入口 |
![]() |
4
1
除非你有一个很好的理由这么做,否则避免像这样混淆la-Java的东西,并尽可能利用STL。为此,可以使用类型别名
现在,你有一个
注意,我没有处理内存清理。我建议你尽量使用智能指针(
|
![]() |
5
0
我考虑了每个答案中的有效点,以删除指针并删除无用的双层映射表示。但是,现实世界的抽象是一个非常复杂的问题,它涉及到成千上万的动态对象,需要动态地创建和销毁这些对象。使用指针似乎是一种有效的方法,但是 JeJo' approach 看起来好多了。 我试图重新使用他的尝试,但对象指针和下面的似乎工作。具有以下插入函数
在
在
我也希望能得到这种方法的反馈。我将添加对析构函数的调用来清理创建的对象 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 7 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 7 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 7 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 7 月前 |