粗糙集(Roug Set)属性约简源代码(C/C++实现)Part3 Element.h

来源:互联网 发布:163exchange邮箱端口 编辑:程序博客网 时间:2024/05/22 12:11

#include<iostream>
#include<vector>
#include<algorithm>
#include"Set.h"
using namespace std;

#ifndef Element_H
#define Element_H

//定义决策表元素类---------------------------------------------------------------
class Element
{
public:
 Element(){}
 Element(vector<int> condition, vector<int> decision, int iNo); //通过条件属性、决策属性集值与论域中样本的编号初始化样本
 Element(Set &condition, Set &decision, int iNo);    //通过条件属性、决策属性集值与论域中样本的编号初始化样本
 const Element& operator=(const Element &e); //赋值构造函数
 vector<int> GetCondition()const;   //获取样本的条件属性集值
 vector<int>::iterator GetConditionBegin(); //返回条件属性值向量的开始位置
 vector<int>::iterator GetConditionEnd(); //返回条件属性值向量的结尾下一个位置
 vector<int> GetDecision()const;    //获取样本的决策属性集值
 int  GetU()const;       //获取样本在论域中的编号
 void SetCondition(vector<int> &condition); //设置样本的条件属性集值
 void SetDecision(vector<int> &decision); //设置样本的决策属性集值
 void SetU(int &u);       //设置样本在论域中的编号
 bool ConditionEqual(Element &other);  //判断两个样本的条件属性几只是否相等
 bool DecisionEqual(Element &other);   //判断两个样本的决策属性几只是否相等
 bool UEqual(Element &other);    //判断两个样本在论域中的编号是否相等
 bool Equal(Element &other);     //只判断条件值与决策值相等,不包括论域U
 void RemoveConditionAttribute(vector<int>::iterator it); //删除it位置的条件属性值
 void AddConditionAttribute(int &a);   //添加条件属性值,如:(1,2,3)->(10,20)变为(1,2,3,4)->(10,20)
 void Print();        //打印样本

private:
 vector<int> ValueOfCondition;
 vector<int> ValueOfDecision;
 int   u;
};

#endif

原创粉丝点击