gpt4 book ai didi

c++ - 如何将 vector 的 vector 传递给期望指向指针的(原始)指针的函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:41:17 25 4
gpt4 key购买 nike

我有一个函数接受指向 double 指针的指针:

void Foo(double ** m);  // expects a 3x3 matrix of doubles

是否有可能通过适当的转换和诸如此类的东西,将一个 std::vector of std::vectors of double 或者一个 std::array of std::arrays of double 传递给这个函数?如果是这样,有人可以解释一下吗?

std::vector<std::vector<double>> v(3, std::vector<double>(3));
std::array<std::array<double, 3>, 3> a;

如果函数只接受一个指向 double 的指针,这是可能的。 (通过 v.data() 或 a.data())。但是函数接口(interface)中指向指针的指针让我觉得这样的转换可能是不可能的。

谢谢,

亚伦

最佳答案

你必须构建数组,例如:

double* a[3] = {v[0].data(), v[1].data(), v[2].data()};
Foo(a);

关于c++ - 如何将 vector 的 vector 传递给期望指向指针的(原始)指针的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29262169/

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