gpt4 book ai didi

c++ - 如何在 std::vector 中获取 vtkDoubleArray 的值

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:22:04 25 4
gpt4 key购买 nike

我想将 vtkDoubleArray 的元素复制到 C++ std::vector(如 How to convert a vtkDoubleArray to an Eigen::matrix 中)

我正在努力让它工作:

typedef std::vector<double> row_type;
typedef std::vector<row_type> matrix_type;

int n_components = vtk_arr->GetNumberOfComponents();
int n_rows = vtk_arr->GetNumberOfTuples();

row_type curTuple(n_components);
matrix_type cpp_matrix(n_rows, row_type(n_components));
for (int i=0; i<n_rows; i++) {
vtk_arr->GetTuple(i, curTuple);
cpp_matrix[i] = curTuple;
}

目前我有这个错误:

error C2664: 'void vtkDataArrayTemplate<T>::GetTuple(vtkIdType,double
*)' : cannot convert parameter 2 from 'row_type' to 'double *'

是否有一些 vtk 方法(希望更健壮和高效)已经实现了这一点?

最佳答案

如错误所述,您传递的是 row_type ( std::vector<double> ) 它期望一个 double* .也许您想传递一个指向底层数据的指针:

vtk_arr->GetTuple(i, curTuple.data());

参见 std::vector::data 了解更多信息。

关于c++ - 如何在 std::vector 中获取 vtkDoubleArray 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24650468/

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