如何在C++中实现二维矢量数组的数据格式和存取 我试图用向量来创建C++中的2D数组,但由于某种原因,在这样做时,我得到了这个错误,

如何在C++中实现二维矢量数组的数据格式和存取 我试图用向量来创建C++中的2D数组,但由于某种原因,在这样做时,我得到了这个错误,,c++,arrays,vector,C++,Arrays,Vector,表达式必须具有指向对象类型的指针 错误显然在这一行: std::coutstd::vector是一维向量。这就是你的错误 要被编译器接受,您的代码可以更正如下: class movmentCalculator { private: std::vector<std::vector<float>> toSim { {5, 5, 5, 5}, {6, 6, 6, 6}, {7, 7, 7, 7} }; public: void printStack()

表达式必须具有指向对象类型的指针

错误显然在这一行:

std::coutstd::vector是一维向量。这就是你的错误

要被编译器接受,您的代码可以更正如下:

class movmentCalculator
{
private:

    std::vector<std::vector<float>> toSim { {5, 5, 5, 5}, {6, 6, 6, 6}, {7, 7, 7, 7} };

public:

    void printStack() 
    {
        for (unsigned int i = 0; i < toSim.size(); ++i)
            for (unsigned int j = 0; j < toSim[i].size(); ++j)
            {
                std::cout << "item" << i << ": " << toSim[i][j] << std::endl;
            }

    }
};

但在我看来,你可以很容易地自己解决这个问题。

toSim是一个一维向量Std::VectorHanks,当我查看二维向量数组时,我注意到他们使用了它,但我认为这只是他们正在做的其他一些事情的模板,其他网站只使用了术语vector in,其他什么都没有,当我这样做时,它抱怨我没有定义它,所以我对它进行了相同的假设them@Evansnye_实际上,可以在一维向量中展平二维向量。这样,您应该通过toSim[ncol*行+列]访问数据。
class movmentCalculator
{
private:

    std::vector<std::vector<float>> toSim { {5, 5, 5, 5}, {6, 6, 6, 6}, {7, 7, 7, 7} };

public:

    void printStack() 
    {
        for (unsigned int i = 0; i < toSim.size(); ++i)
            for (unsigned int j = 0; j < toSim[i].size(); ++j)
            {
                std::cout << "item" << i << ": " << toSim[i][j] << std::endl;
            }

    }
};