是否有一种简单的方法来创建指向 vector 元素的指针 vector ?
即比下面更容易
std::vector<T*> fn(std::vector<T> &v)
{
std::vector<T*> r;
for (int i = 0; i < v.size(); i++)
{
r.push_back(&v[i]);
}
return r;
}
编辑:通过引用传入 vector
最佳答案
我看不出您需要这样做的理由。如果你增长 v
,你的指针可能会变得无效;和 r[i]
只是 &v[i]
的别名。
如果你真的需要传递指针(我们仍然不明白为什么)你可以只传递 &v[0]
和 vector 的大小。鉴于 std::vector
的所有实现都必须保证 vector 中的元素连续存储在内存中,您可以从第一个元素的地址和 vector 的大小推断出所有地址。
关于c++ - 从 C++ 中的 vector 获取指针 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4792607/