gpt4 book ai didi

c++ - 表示可以有子菜单的菜单的数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:05:11 26 4
gpt4 key购买 nike

例如我可以有这样的东西,

A
B
ba
bb
C
Ca
D

现在我有一个二维数组,但这不是很通用,因为如果我想将最大子级别从 2 扩展到 3,我将需要另一个维度。有什么建议吗?

最佳答案

复合模式在这里是一个合适的应用:

Composite Pattern

(来自维基百科:)http://en.wikipedia.org/wiki/Composite_pattern

在你的情况下:

  • 创建一个名为“Menu”的基类(这对应于上图中的Component部分)
  • 创建一个名为“MenuItem”的派生类(这对应于上图中的Leaf部分)
  • 创建一个名为“SubMenu”的派生类(这对应于上图中的 Composite 部分)SubMenu 可以包含更多 Menu - 可以是更多 MenuItem 或 SubMenu。

通过为每个 SubMenu 对象实现一个计数器,您可以根据菜单元素在复合“SubMenu”中的插入顺序实现所需的排序:每次调用 aSubMenu.add(newMenuItemOrSubMenu) 时,aSubMenu 应该增加它自己的计数器并用订购号标记新项目。 (实现的具体细节由您决定,您根本不必使用单独的计数器,只需使用列表或数组即可)

关于c++ - 表示可以有子菜单的菜单的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13037164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com