【发布时间】:2014-12-04 09:59:10
【问题描述】:
我正在尝试这样做:
我想要一个向量(std::vector),其对象定义如下:
class MyObj{
private:
idNumber= // it could be a pointer
firstConnection= // it could be a pointer
secondConnection= // it could be a pointer
public:
...
};
vector<MyObj> vectorOfObj(10);
所以我想要对象的idNumber,它是vector的一个元素,对应同一个元素的索引,并设置元素之间的连接(双向)(例如vectorOfObj[5]与@连接987654324@ 和 vectorOfObj[4]) 如果向量的结构被修改(例如,如果元素 6 设置在 4 中并且 4 设置在 6 中,则对象会更改),我希望元素保持其引用有效(id 和连接)他们的 id 和如果 5 与 4 连接,现在与 6 连接)。如果值得,我接受所有类型的解决方案。我想了很多,但我找不到解决方案。
我希望我很清楚。谢谢!
【问题讨论】:
-
一个对象可以连接到其他几个对象吗?您需要双向引用(5 -> 7、7 -> 5)还是仅在一个方向(5 -> 7)?
-
双向引用,是的,一个对象可以连接多个对象!
-
你的约束太紧,你的要求太简短。您将 不 能够存储指向向量元素的有效指针或迭代器(除非您保证该向量此后永远不会增长),我什至不建议尝试这样做。你不能存储索引?或者一些 other 类型的唯一索引?然后使用地图而不是矢量?都很可疑......
-
是的。可以使用地图,我不是专家,所以所有建议对我都有好处!很抱歉出现问题!