指向向量元素的C ++指针,元素已删除

雷电616

我希望一个简单的问题..

我有元素向量。元素是我自己的类类型。我维护了指向该向量的特定成员的指针。

问题是:如果我从向量中删除元素,指针将如何处理?

子问题

  • 遍历向量时,有什么方法可以检查迭代器是否指向我当前具有指针的元素?vIterator == pElement做吗?
  • 有什么方法可以仅通过指向该元素的指针来擦除向量中的元素?如果对上一个问题的回答是肯定的,那么我想我可以循环进行。

提前致谢!

Matteo意大利
  1. 现在将指向无效的内存一个或一个不同的对象。通常,使用该指针现在是未定义的行为。
  2. if(&*vIterator == ptr)
        ... 
    

    在哪里*从迭代器获取对该对象的引用,&并提供其地址。注意,尽管&*在指针上没有操作,但是在这里我们需要它,因为迭代器重载*

  3. 您可以进行线性搜索,但这是不必要的效率低下。您可以从存储是连续的这一事实中获益,并执行以下操作:

    vec.erase(vec.begin()+(ptr-&vec[0]));
    

    ptr-&vec[0] 根据通常的指针算法,可以为您提供向量中的索引,并将其添加到begin迭代器中会得到一个迭代器。


一个。从技术上讲,不允许在移除元素时对向量进行释放分配,因此说它可能指向无效(=已销毁)的对象可能更正确。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

指向向量元素的C ++指针,元素已删除

来自分类Dev

在向量中添加或删除之后保留指向向量元素的指针(在c ++中)

来自分类Dev

如何指向向量元素?

来自分类Dev

删除c ++中指针数组的每个元素指向的对应元素

来自分类Dev

如何过滤向量并返回指向向量元素的指针的向量

来自分类Dev

存储指向整数向量向量元素的指针向量

来自分类Dev

删除指向向量的指针

来自分类Dev

如何访问包含指向字符串的指针的向量的元素?

来自分类Dev

指向对象的指针向量C ++

来自分类Dev

C ++删除向量中的元素

来自分类Dev

删除已包含的元素

来自分类Dev

指向结构内部的元素的指针(C)

来自分类Dev

指针向量中的C ++擦除元素

来自分类Dev

指针向量中的C ++擦除元素

来自分类Dev

如何动态从向量中删除c ++中指向对象的指针?

来自分类Dev

如何动态从向量中删除c ++中指向对象的指针?

来自分类Dev

排序元素的向量或元素的指针

来自分类Dev

访问向量元素的指针

来自分类Dev

C ++-创建指向包含类对象指针的数组元素的指针

来自分类Dev

C ++将向量的向量元素推入向量

来自分类Dev

删除指针向量中的指针指向的对象

来自分类Dev

从指针数组中删除元素-C ++

来自分类Dev

从C ++类返回指向向量的指针

来自分类Dev

制作指向已分配内存的C ++向量

来自分类Dev

ets:foldl与已删除元素

来自分类Dev

jQuery的。从已删除的元素导航

来自分类Dev

jQuery检查已删除的元素

来自分类Dev

从列表向量中删除元素C ++

来自分类Dev

在C ++中删除并推回向量的元素