作为类成员的 2D 矢量指针
2D Vector pointer as member of class
我是c++的新手。我正在尝试制作一个由 2d 矢量指针组成的类。我正在创建一个将 2D 矢量作为参数的对象。我正在尝试使用指针引用此 2D 矢量。这编译得很好,但是我在执行时遇到分段错误。我在这里附加我的代码。请帮忙!
# include <iostream>
# include <vector>
using namespace std;
class Vectorref {
vector<vector<float> > *vptr; // pointer to 2D vector
public:
Vectorref(vector<vector<float> >);
double getval(int,int);
};
Vectorref::Vectorref(vector<vector<float> > v)
{
vptr = &v;
}
double Vectorref::getval(int r, int c)
{
return (*vptr)[r][c];
}
int main(){
vector<vector<float> > A (3,vector<float>(3,2.0));
Vectorref B(A);
for(int i=0; i<3 ;i++){
for(int j=0; j<3; j++){
cout << B.getval(i,j) << "t";
}
cout << endl;
}
return 0;
}
您应该将v
作为引用传递,而不是复制。
Vectorref(vector<vector<float> >&);
Vectorref::Vectorref(vector<vector<float> >& v)
您必须确保您的vector<vector<float>>
比您的Vectorref
寿命更长,否则您将再次出现分段错误。
您的getval
函数应返回 float
而不是 double
。
相关文章:
- 如何引用 2D 指针?
- 使用双指针传递 2D 常量数组
- 使用指针算法修改函数中的 2D 数组
- 为什么将指针重新分配给 1D 数组的 char 时显示错误,但 2D 数组工作正常?
- 无法分配函数指针的 2D 数组
- 在 Arduino 中为 2D 指针数组赋值
- 删除使用 new 创建的 2D 或 3D 指针
- 如何使用指针C++将元素从2D数组复制到1D数组
- 带有空指针的指针 c++ 的 2D 数组
- 不明白使用双指针 (**) 创建 2d 动态数组
- 将 2D 数组指针传递给 C++ 中的函数
- C++ & Python:传递并返回从 python 到 c++ 的 2D 双指针数组
- 尝试理解指向具有 2d 顶点的指针的指针
- 指向 2D 数组的指针的类型是什么?
- c ++ 2d 数组和指向指针的指针 - 我不明白这段代码
- 有没有办法使用初始化到第一行的指针访问 2d 数组的第二行?
- 如何使用3D char数组调整双指针2D char阵列的大小
- 如何初始化和定义指向指针 2D 数组的指针
- 在mex函数中返回双指针2D矩阵
- 指向作为输入参数的指针(2D数组)的指针