gpt4 book ai didi

c++ - 将指向 reference_wrapper 的指针转换为指向底层的指针?

转载 作者:行者123 更新时间:2023-11-28 00:26:04 28 4
gpt4 key购买 nike

这是我的情况:

我得到了作为指针的数据 double*

我想将它包装在一个 vector 中以使用一个库,并避免乱用指针。

不想复制整个数组,我使用了一个引用包装 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()

最佳答案

不,这是不可能的。

doublereference_wrapper<const double>是完全不相关的类型,无法进行此转换。

如果你真的需要操作 C 风格的数组,你应该坚持使用 std::vector<double> ,并使用 data() 访问底层数组需要时的成员函数。

关于c++ - 将指向 reference_wrapper 的指针转换为指向底层的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25016400/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com