📄 description.cpp
字号:
// DESCRIPTION.cpp: implementation of the DESCRIPTION class.////////////////////////////////////////////////////////////////////////#include "StdAfx.h"#include "memory.h"#include "stdio.h"#include "DESCRIPTION.h"//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////DESCRIPTION::DESCRIPTION(){ num_attr=0; num_values=0; type=0; num_classes=0;}DESCRIPTION::DESCRIPTION(const DESCRIPTION& descript){ num_attr=descript.num_attr; num_classes=descript.num_classes; num_values=new int[num_attr]; type=new int[num_attr]; memcpy(type,descript.type,sizeof(int)*num_attr); memcpy(num_values,descript.num_values,sizeof(int)*num_attr);}DESCRIPTION::~DESCRIPTION(){ if(num_values) delete num_values; if(type) delete type;}void DESCRIPTION::operator =(const DESCRIPTION& descript){ if(num_values) delete num_values; if(type) delete type; num_attr=descript.num_attr; num_classes=descript.num_classes; num_values=new int[num_attr]; type=new int[num_attr]; memcpy(type,descript.type,sizeof(int)*num_attr); memcpy(num_values,descript.num_values,sizeof(int)*num_attr);}void DESCRIPTION::SetNumAttr(int n){ num_attr=n; num_values=new int[n]; type=new int[n]; for(int i=0;i<n;i++) { num_values[i]=0; type[i]=1; }}int DESCRIPTION::GetNumAttr() const{ return num_attr;} void DESCRIPTION::SetType(int i,int t){ type[i]=t;}int DESCRIPTION::GetType(int i) const{ return type[i];}void DESCRIPTION::SetNumValues(int i,int n){ num_values[i]=n;}int DESCRIPTION::GetNumValues(int i) const{ return num_values[i];}void DESCRIPTION::SetNumClasses(int n){ num_classes=n;}int DESCRIPTION::GetNumClasses() const{ return num_classes;}void DESCRIPTION::WriteTo(FILE* stream) const{ fprintf(stream,"%d ",num_classes); for(int i=0;i<num_classes;i++) { fprintf(stream,"0 "); } fprintf(stream,"\n"); fprintf(stream,"%d\n",num_attr); for(int i=0;i<num_attr;i++) { fprintf(stream,"%d %d\n",type[i],num_values[i]); }}bool DESCRIPTION::ReadFrom(FILE* stream){ int nAttr=0,temp; if(fscanf(stream,"%d ",&num_classes)!=1) return false; for(int i=0;i<num_classes;i++) { if(fscanf(stream,"%d ",&temp)!=1) return false; } fscanf(stream,"\n"); if(fscanf(stream,"%d\n",&nAttr)!=1) return false; SetNumAttr(nAttr); for(int i=0;i<num_attr;i++) { if(fscanf(stream,"%d %d\n",&(type[i]),&(num_values[i]))!=2) return false; } return true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -