c++ - 如何使用 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);
}
谢谢!
解决方案
你在这里混淆了一些事情:
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
)
推荐阅读
- json - 本地 JSON 文件流到网站
- eclipse - 检测 Eclipse 处于无头模式
- android - 更改部分edittext文本颜色
- java - webview 再次播放 btn
- python - Tensorflow - 根据批次位置进行索引
- javascript - 如何将数据写入特定位置 Firebase Web
- api - Swagger/OpenAPI 3.0 RequestBody 描述未显示
- angular - Angular 6 - 延迟加载多个级别的孩子
- angularjs - ng-checked 不触发 ng-model
- c# - Akka.NET 无法识别我的自定义记录器并默认为 BusLogger