分配指向矢量的指针

Assigning a pointer to a vector

本文关键字:指针 分配      更新时间:2023-10-16

我确定这个问题存在于这个网站的某个地方,但我想我不太确定要搜索什么,因为我还没有找到答案。因此,如果我发布重复项,我会道歉。

无论如何,我正在尝试创建一个指向向量的指针向量。

这是我到目前为止所拥有的:

    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|

所以很明显,我定义指针向量的最后一行有问题。正确的方法是什么?

提前谢谢你。

vector<vector<float>*> knotvectors[] = {ptr_u1, ptr_u2, ptr_u3};

vector<vector<float>*>数组。

你想要

vector<vector<float>*> knotvectors = {ptr_u1, ptr_u2, ptr_u3};

看来你的意思是以下几点

vector<vector<float>*> knotvectors = {ptr_u1, ptr_u2, ptr_u3};

或者也许只是写会更好

vector<vector<float>> knotvectors = { U1, U2, U3};