return 使用基于范围的循环的向量中项目的地址

return address of an item in vector using range based loop

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

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

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

I think its the address of local variable vals` address.

完全正确。 (虽然说的更具体一点,就是local vector的内部buffer的地址)

How can I return address of item in vector

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

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