c/c++编程有关问题
c/c++编程问题
在类中能否定义一个vector向量?
例如:
#include <vector>
using namespace std;
class obs_file
{
public:
obs_file();
virtual ~obs_file();
double o_time[7];
vector<int> num;
vector<vector<double> > sat;
};
然后对在 obs_file *temp_f=new obs_file[cont];//cont值为3599
之后对num赋值时出现错误,错误发生在
obs_file[0].num.push_back(9);//把9输入到num中
这只是意思一下,实际不是,为何不行?
但是对o_time[0]=2;就可以,为什么?
------解决方案--------------------
------解决方案--------------------
//obs_file[0].num.push_back(9);//把9输入到num中
temp_f[0].num.push_back(9);
例如:
#include <vector>
using namespace std;
class obs_file
{
public:
obs_file();
virtual ~obs_file();
double o_time[7];
vector<int> num;
vector<vector<double> > sat;
};
然后对在 obs_file *temp_f=new obs_file[cont];//cont值为3599
之后对num赋值时出现错误,错误发生在
obs_file[0].num.push_back(9);//把9输入到num中
这只是意思一下,实际不是,为何不行?
但是对o_time[0]=2;就可以,为什么?
------解决方案--------------------
//这样写
class obs_file
{
public:
obs_file(){}
virtual ~obs_file(){}
double o_time[7];
vector<int> num;
vector<vector<double>> sat;
};
int main()
{
obs_file *temp_f=new obs_file[2];
temp_f[0].num.push_back(9);
printf("%d\n",temp_f[0].num.at(0));
return 0;
}
------解决方案--------------------
//obs_file[0].num.push_back(9);//把9输入到num中
temp_f[0].num.push_back(9);