我确定这个问题存在于这个网站的某个地方,但我想我不太确定要搜索什么,因为我还没找到答案。所以,如果我发布一份副本,我就会解散。
无论如何,我正在尝试创建一个指向矢量的指针向量。
这是我到目前为止所做的:
float knot_vector1[] = {-1,-1,-1 0,1,1,1};
float knot_vector2[] = {-1, -1, 1, 1};
float knot_vector3[] = {-1, -1, -1, -1, 0, .5, .5, .5, 1, 1, 1, 1};
// initialize vectors with the arrays defined above
vector<float> U1 (knot_vector1, knot_vector1 + sizeof(knot_vector1) / sizeof(knot_vector1[0]) );
vector<float> U2 (knot_vector2, knot_vector2 + sizeof(knot_vector2) / sizeof(knot_vector2[0]) );
vector<float> U3 (knot_vector3, knot_vector3 + sizeof(knot_vector3) / sizeof(knot_vector3[0]) );
vector<float> *ptr_u1 = &U1; // creating pointers that point to my vectors
vector<float> *ptr_u2 = &U2;
vector<float> *ptr_u3 = &U3;
vector<vector<float>*> knotvectors[] = {ptr_u1, ptr_u2, ptr_u3};
以下是我收到的错误:
error: conversion from 'std::vector<float>*' to non-scalar type 'std::vector<std::vector<float>*>' requested|
显然,在我定义指针向量的最后一行出了问题。这样做的正确方法是什么?
提前谢谢。
答案 0 :(得分:3)
看来你的意思是以下
vector<vector<float>*> knotvectors = {ptr_u1, ptr_u2, ptr_u3};
也许最好只写
vector<vector<float>> knotvectors = { U1, U2, U3};
答案 1 :(得分:3)
此
vector<vector<float>*> knotvectors[] = {ptr_u1, ptr_u2, ptr_u3};
是vector<vector<float>*>
的数组。
你想要
vector<vector<float>*> knotvectors = {ptr_u1, ptr_u2, ptr_u3};