【发布时间】:2014-07-29 13:22:37
【问题描述】:
这是我的情况:
我得到的数据是指针,比如double*。
我想将其包装在 vector 中以使用库,并避免弄乱指针。
不想复制整个数组,我使用引用包装向量。如果我想在使用库后从上述vector 中获取double*,我可以通过转换vector.data() 函数来获得它吗?
例如:
double* arr = new double[10];
vector<reference_wrapper<const double> > vec(arr,arr+10);
//use library in some manner.
//is this allowed? is there a more appropriate way?
//or should I forget using reference_wrappers in this way.
double* res = (double*) vec.data()
【问题讨论】:
-
std::reference_wrapper<const T>*不是T*。再多的演员也不会改变这一点。 -
这个参考包装向量看起来对你没什么用。你最好不要害怕“乱用指针”。如果您不必管理指向对象的生命周期,那么指针是迭代器,不多也不少。
标签: c++ pointers vector reference-wrapper