C++ 如何使用C+中的指针通过指针传递多维向量+;?

C++ 如何使用C+中的指针通过指针传递多维向量+;?,c++,pointers,vector,C++,Pointers,Vector,我想使用pass-by指针打印多维向量a的值。有人能告诉我我的程序出了什么问题吗?我犯了很多错误 #include <iostream> #include <vector> using namespace std; class foo{ private: vector <int> v; public: foo(vector<vector <int> >**); }; foo :: foo(vecto

我想使用pass-by指针打印多维向量
a
的值。有人能告诉我我的程序出了什么问题吗?我犯了很多错误

#include <iostream>
#include <vector>

using namespace std;

class foo{
    private:
    vector <int> v;
    public:
    foo(vector<vector <int> >**);
};

foo :: foo(vector<vector<int> >** a)
{
    cout << a[0][0] <<endl;
    
    //cout<<a->size()<<endl;
}

int main()
{
    vector<vector<int>> a{{1,2,3,4},{5,6,7,8}};
    foo f(&a);
    
}
#包括
#包括
使用名称空间std;
福班{
私人:
向量v;
公众:
foo(矢量**);
};
foo::foo(向量**a)
{

你在这里混淆了一些事情:

  • vector**
    是指向
    vector
    指针的指针
  • foo f(&a);
    中,表达式
    &a
    向量*
    (指向int向量向量的指针)
  • 参考应该是
    向量&
你会有这样的
foo

//     Reference here VVV
foo(vector<vector<int> > &a)
foo f(a);

(不带地址
a

请显示您收到的错误。您不是通过引用传递,而是使用指针,因此您需要使用
(*a)[0][0]
@AlanBirtles这是一个愚蠢的错误,抱歉。看起来您一直在阅读有关数组的内容,并试图将所读内容应用于向量。获取一个。(这里绝对没有理由使用类。)@molbdnilo实际上,这个类结构在我正在编写的另一个程序中使用。是的,这里不需要这个类,但我在另一个程序中需要这个概念。是的,我正在尝试在向量中复制多维数组。