Author: YuMaNzI
Date: 2015/04/24
stl实现的多种容器使用简单,性能良好,能极大提高日常的c++ code开发效率。但我们在用这些容器存储自定义类(而不是简单的int,、double、string等数据类型)时,一定要注意生存空间的问题。下面通过一个例子简单说明:
class SimProf
{
public:
SimProf();
~SimProf();
private:
double * x;
double y;
}
SimProf::SimProf() {
x = new double[fcnt];
y = 0;
}
SimProf::~SimProf() {
if (x != NULL) { delete[] x; x = NULL; }
}
在上面的例子中,类SimProf有x和y两个成员变量,其中x是个动态double数组,想要的new和delete操作分别在构造函数和析构函数中。下面的代码使用容器set存在一些SimProf:
set<SimProf> train_sp;
for (size_t i = 0; i < train_set.size(); i++) {
SimProf sp_inst;
// processing sp_inst
train_sp.insert(sp_inst