gpt4 book ai didi

c++ - 作为类成员的 2D vector 指针

转载 作者:行者123 更新时间:2023-11-30 05:15:12 25 4
gpt4 key购买 nike

我是 C++ 新手。我正在尝试制作一个由二维 vector 指针组成的类。我正在创建一个以二维 vector 作为参数的对象。我正在尝试使用指针引用此 2D vector 。这编译得很好,但我在执行时遇到段错误。我在这里附上我的代码。请帮忙!

# 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 .

关于c++ - 作为类成员的 2D vector 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43200916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com