我有一组小 object 。这些对象中的每一个都指向其他对象。这些指针可以实现为实际指针或对象数组或其他对象的索引。它可能是这样的指针数组,其长度可能会改变。可能存在指向相同类型和其他类型对象的指针,但这在编译时是已知的。
例如:我有一个类 Person。这个人有两个指向其父 Persons 的指针。还有一个类 Place。每个人都有一个指向他/她访问过的所有地方的指针列表。
与实际的家谱不同,我可能想不时地通过删除/插入一些人来更改树。
C++ 标准库 (C++ 11) 中是否有用于该目的的容器,还是我应该寻找专用的内存管理类?
我必须将数据传递到 C 接口(interface),为什么我更喜欢基于可访问(只读)线性数组的存储方法。
最佳答案
听起来是引用的好时机Stepanov :
Use vectors whenever you can. If you cannot use vectors, redesign your solution so that you can use vectors.
“可访问线性阵列”部分指向vector<Person>
- 其他容器都没有该功能 - 其余用例不建议任何特定类型的存储或访问。如果你能做到,它的一部分听起来可能更干净vector<shared_ptr<Person>>
但这会破坏您的 C 接口(interface)要求。所以vector<Person>
可能是你的答案。
关于c++ - 哪个是管理映射到其他一些小对象的小对象的正确容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26972843/