我只是问了一个涉及的问题,std::set
但在考虑了更多之后,我想我已经把我的问题缩小到了一些简单的问题上。
我有一套独特的物品。我想创建一个向量,其中向量中的每个元素都指向集合中的一个项目。
所以,我有一组(唯一的)A 对象:
class A
{
int i;
};
std::set<A, compareclass> mySet;
和 A* 的向量:
std::vector<A*> myVec;
set::insert()
返回一个对,其中包含指向集合中元素(已插入或已存在)的迭代器。从技术上讲,我可以像这样得到它的地址:
ret = myset.insert(A());
myVec.push_back(&(*ret.first));
不过,我认为这可能不是一个好主意。有没有其他方法可以让向量元素指向集合中的特定对象?