如何指向向量元素?

亚瑟·斯普纳

a)指向向量元素的地址是否安全?

unsigned int* ptr;
std::vector<unsigned int> vec;
vec.resize(10);
vec[0] = 10;
ptr = &vec[0];

在我看来,只要不更改预分配向量的大小,&vec [0]的地址就不会更改。我的问题是,只要预先分配矢量元素,是否可以安全地指向它。

b)如果我没有预先分配vec的大小,则&vec [0]的地址似乎会改变。如果我通过vec.push_back()将其他值推送到向量。我想有一个指向索引向量的指针向量。

std::vector<unsigned int*> ptr_vec(10,0);
std::vector<unsigned int> index_vec;
index_vec.push_back(0);
ptr_vec[0] = &index_vector[0];
ptr_vec[1] = ptr_vec[0];
index_vec.push_back(1); // at this point the adress of &index_vec[0] changes. thats my problem
顺磁性羊角面包

因此,请回答您的实际问题:

我的问题是,只要可以预先分配矢量元素,是否可以安全地指向它

是的。只要您预先分配了它的内容,并且您没有以任何方式更改它的大小。

请阅读的文档,std::vector以获取使此类指针操作不安全的方法列表。(搜索被称为“使指针无效”的方法。

另外,请参阅此相关的问答,这与迭代器失效(一个类似的概念)有关。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何导出函数内向量的大小?(向量通过指向其第一个元素的指针传递)

来自分类Dev

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

来自分类Dev

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

来自分类Dev

向量元素的引用地址与其指向的向量元素的地址不同。为什么?

来自分类Dev

向量的对象如何访问向量元素

来自分类Dev

如何找到向量元素的乘积?

来自分类Dev

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

来自分类Dev

如何指向哈希中的深层嵌套元素?

来自分类Dev

如何获得鼠标指向的元素当前的属性

来自分类Dev

如何指定指向数组元素的成员指针?

来自分类Dev

如何获得鼠标指向的元素当前的属性

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何在C ++中使用指向结构的指针向量?

来自分类Dev

删除指向向量的指针

来自分类Dev

将向量指向数组

来自分类Dev

当向量在内部类中时,如何删除指向对象的向量指针

来自分类Dev

C ++:如何在向量向量中打印所有元素

来自分类Dev

如何访问向量clojure的向量中的特定元素

来自分类Dev

如何在Java中的向量中插入向量元素

来自分类Dev

C ++:如何在向量向量中打印所有元素

来自分类Dev

指向向量的第一个元素的指针与该向量的back_inserter()有何区别?

来自分类Dev

如何从向量中删除重复的元素?

来自分类Dev

如何将元素插入向量?

来自分类Dev

如何获得向量中元素的类型?

来自分类Dev

向量的元素在Rust中如何左移?

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

    如何导出函数内向量的大小?(向量通过指向其第一个元素的指针传递)

  5. 5

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

  6. 6

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

  7. 7

    向量元素的引用地址与其指向的向量元素的地址不同。为什么?

  8. 8

    向量的对象如何访问向量元素

  9. 9

    如何找到向量元素的乘积?

  10. 10

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

  11. 11

    如何指向哈希中的深层嵌套元素?

  12. 12

    如何获得鼠标指向的元素当前的属性

  13. 13

    如何指定指向数组元素的成员指针?

  14. 14

    如何获得鼠标指向的元素当前的属性

  15. 15

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

  16. 16

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

  17. 17

    如何在C ++中使用指向结构的指针向量?

  18. 18

    删除指向向量的指针

  19. 19

    将向量指向数组

  20. 20

    当向量在内部类中时,如何删除指向对象的向量指针

  21. 21

    C ++:如何在向量向量中打印所有元素

  22. 22

    如何访问向量clojure的向量中的特定元素

  23. 23

    如何在Java中的向量中插入向量元素

  24. 24

    C ++:如何在向量向量中打印所有元素

  25. 25

    指向向量的第一个元素的指针与该向量的back_inserter()有何区别?

  26. 26

    如何从向量中删除重复的元素?

  27. 27

    如何将元素插入向量?

  28. 28

    如何获得向量中元素的类型?

  29. 29

    向量的元素在Rust中如何左移?

热门标签

归档