我将尝试创建一个类方法,该方法将返回std :: vector,并且有点困惑如何做到最好。
我使用的方法是定义以下方法:
我使用的方法是定义以下方法:
std::vector<double>* GetBins(void);
在这个方法中,我会分配一个新的std::vector,并将其填充数据。然后我会返回指向这个vector的指针。
std::vector<double>* Frequency::GetBins(void) {
std::vector<double> *rtnVec = new std::vector<double>();
for (_itMap = _mapFreq.begin(); _itMap != _mapFreq.end(); _itMap++ ) {
rtnVec->push_back((*_itMap).first);
}
return rtnVec;
}
(_itMap是一个类定义的迭代器)
在我的main.cpp文件中,我已经完成了以下操作:
std::vector<double>* myBins;
myBins = myFreq3->GetBins();
delete myBins;
我知道使用这种方法,如果不在main.cpp代码中删除指针,就会得到一个悬空指针,所以它已经有点“危险”了。什么是从类方法返回新的std::vector的最佳方法?
谢谢大家 Pete
BinsProcessor
接口,并要求Frequency
使用您的CustomBinsProcessor
处理箱子。 - Peter Wood