向量的返回地址,使用基于范围的循环

时间:2019-02-28 15:34:09

标签: c++ stdvector

我正在尝试获取矢量项的地址,如下所示:

std::transform(m_vector.begin(), m_vector.end(), 
               m_address.begin(), 
               [](std::vector<T> val){return val.data();};

但是它为所有项目返回相同的地址。我认为它是局部变量vals`地址的地址。 如何在不使用raw for循环的情况下返回向量中的项目地址? 谢谢!

1 个答案:

答案 0 :(得分:0)

  

我认为它是局部变量vals地址的地址。

完全正确。 (尽管更具体,但这是局部向量的内部缓冲区的地址。)

  

如何返回矢量中的商品地址

如果将参数声明为引用,则可以使该参数引用另一个对象(在本例中为向量内的对象):

[](std::vector<T>& val)