我正在浏览一些创建复杂stl容器的代码,如下所示。
map<string, list<pair<string, set<complexclassX*>>>>
或喜欢
map<string, list<pair<complexclassX*, set<complexclassY*>>>>
这里,map,list set,pair都用于一个对象。这是一个好的做法还是可以更好地设计?
答案 0 :(得分:2)
具体而言,您发布的包含没有嵌套效率问题
像vector
那样移动元素的容器可以。但是对于移动构造函数来说,它们的成本很低,而不是像指针一样低
如果你想使用像vector
这样的容器,用unique_ptr
包装类型的代码几乎与指针相同,但你不必管理内存。
无论如何,您发布的容器看起来很复杂。将它拆分为每个包含一个容器的类将更具可读性。