首页 > 解决方案 > 如何使用 C++ 中的指针通过指针传递多维向量?

问题描述

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);
    
}

谢谢!

标签: c++pointersvector

解决方案


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

  • vector<vector<int> >**是指向 的指针的指针vector<vector<int> >
  • foo f(&a);表达式&a中是vector<vector<int> >*(指向 int 向量的向量的指针)
  • 参考将是vector<vector<int> > &.

你会foo这样:

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

并像这样简单地调用:

foo f(a);

取地址a


推荐阅读