⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 individual.cpp

📁 郭涛算法 熟悉的朋友应该知道 演化计算相关
💻 CPP
字号:
// Individual.cpp: implementation of the CIndividual class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Individual.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

int CIndividual::VaryNum = 20;
int CIndividual::ConFuncNum = 2;

CIndividual::CIndividual()
{
	fitness = 0.0;
	value = 0.0;
	conFitness = 0.0;
	feasible = 0;
	XVary = new double[VaryNum];
	Dev = new double[VaryNum];
	for (int i=0;i<VaryNum;i++)
	{
		XVary[i] = 0.0;
		Dev[i] = 0.0;
	}
	con = new double[ConFuncNum];
	for (i=0;i<ConFuncNum;i++)
	{
		con[i] = 0.0;
	}
}

CIndividual::~CIndividual()
{
	delete []XVary;
	delete []Dev;
	delete []con;
}

CIndividual::CIndividual(const CIndividual &t)
{
	//判断是否相同
	if(&t == this)
	{
		return;
	}
	
	//赋值给this
//  VaryNum=t.VaryNum;
//	ConFuncNum = t.ConFuncNum;
	XVary = new double[VaryNum];
	Dev = new double[VaryNum];
	con = new double[ConFuncNum];
	for(int i = 0; i < VaryNum; i++)
	{
		XVary[i] = t.XVary[i];
		Dev[i] = t.Dev[i];
	}
	for (i=0;i<ConFuncNum;i++)
	{
		con[i] = t.con[i];
	}

    value = t.value;
    fitness = t.fitness;
	conFitness = t.conFitness;
	feasible = t.feasible;
}

CIndividual &CIndividual::operator =(const CIndividual &t)
{
	//判断是否相同
	if(&t == this)
	{
		return *this;
	}
    //判断是否已经分配空间,很重要,不然内存不能很好释放
	/*if (XVary) delete[] XVary;
	if(Dev) delete[] Dev;
	if(con) delete[] con;

	//赋值给this
//  VaryNum = t.VaryNum;
//	ConFuncNum = t.ConFuncNum;
	XVary = new double[VaryNum];
	Dev = new double[VaryNum];
	con = new double[ConFuncNum];*/
	for(int i = 0; i < VaryNum; i++)
	{
		XVary[i] = t.XVary[i];
		Dev[i] = t.Dev[i];
	}
	for (i=0;i<ConFuncNum;i++)
	{
		con[i] = t.con[i];
	}

    value = t.value;
    fitness = t.fitness;
	conFitness = t.conFitness;
	feasible = t.feasible;

	return *this;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -