【发布时间】:2012-01-19 16:01:53
【问题描述】:
在 python 中,我有以下内容:
graph = {}
graph[1] = {}
graph[2] = {}
graph[3] = {}
graph[1][3] = graph[3]
graph[2][1] = graph[1]
graph[2][3] = graph[3]
graph[3][2] = graph[2]
这是一个表示图形的结构,我觉得它很好,因为它的结构与其中一个节点相同,因此我可以直接使用它来启动搜索(如深度优先)。它的印刷版是:
{1: {3: {2: {1: {...}, 3: {...}}}}, 2: {1: {3: {2: {...}}}, 3: {2: {...}}}, 3: {
2: {1: {3: {...}}, 3: {...}}}}
它可以像这样使用:
graph[1][3][2][3][2][1][3][2][1][3][2].keys()
现在,我很想知道如何在 C++、C# 和 Java 中实现它,而无需诉诸“对象”技巧,这些技巧会使代码充满丑陋的演员表。对于 C++,我在考虑模板元编程,但是当需要类似的东西时会生成“有限数据类型”
map<int,map<int,...>> or map<int,...>
【问题讨论】:
-
你可以试试cppscript。
标签: c# java c++ python strong-typing