2014-06-06 23 views
2

我正在通过一些代码来创建复杂的stl容器,如下所示。正在创建复杂的STL容器高效?

map<string, list<pair<string, set<complexclassX*>>>> 

或类似

map<string, list<pair<complexclassX*, set<complexclassY*>>>> 

在这里,地图,列表集合,一对均用于一个对象。这是一种好的做法还是可以更好地设计?

+1

很难在不知道它们用于何种设计的情况下对设计发表评论。 –

+0

它可以使事情变得更加复杂,特别是如果不同的类名不重要。 我会尝试重构代码以将地图的“列表”部分放入适当的包装类中。 – Max

+0

例如,解析文件并在多个文件中搜索和比较标记 – user3665224

回答

2

具体而言,您发布的内容没有嵌套的效率问题。
容器是像vector这样的移动元素。但通过移动构造函数,它们的成本很低,而不像指针那么低。
如果你想使用像vector这样的容器,用unique_ptr包装类型的开销几乎与指针相同,但是你不需要管理内存。

无论如何,您发布的容器看起来都很复杂。将它拆分为每个包含一个容器的类将更具可读性。