我希望一个简单的问题..
我有元素向量。元素是我自己的类类型。我维护了指向该向量的特定成员的指针。
问题是:如果我从向量中删除元素,指针将如何处理?
子问题:
vIterator == pElement
做吗?提前致谢!
if(&*vIterator == ptr)
...
在哪里*
从迭代器获取对该对象的引用,&
并提供其地址。注意,尽管&*
在指针上没有操作,但是在这里我们需要它,因为迭代器重载*
。
您可以进行线性搜索,但这是不必要的效率低下。您可以从存储是连续的这一事实中获益,并执行以下操作:
vec.erase(vec.begin()+(ptr-&vec[0]));
ptr-&vec[0]
根据通常的指针算法,可以为您提供向量中的索引,并将其添加到begin迭代器中会得到一个迭代器。
一个。从技术上讲,不允许在移除元素时对向量进行释放分配,因此说它可能指向无效(=已销毁)的对象可能更正确。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句